¿Hay alguna forma de detectar cuándo una unidad flash USB está conectada a un dispositivo Android? Puedo detectar una tarjeta SD usando un receptor de transmisión, pero no funciona para USB. Me gustaría evitar las encuestas.Android: Detecta una unidad flash USB conectada
código para registrar el receptor:
private void RegisterUpdateReceiver()
{
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.intent.action.MEDIA_MOUNTED");
intentFilter.addDataScheme("file");
myReceiver = new MyReceiver();
this.registerReceiver(myReceiver, intentFilter);
}
código del receptor:
public class MyReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
String action = intent.getAction();
if (action.equals("android.intent.action.MEDIA_MOUNTED"))
{
// react to event
}
}
Logcat muestra algunos eventos relacionados con la montura USB, pero no puedo detectar esto en el nivel SDK. Parece que lo que dices es correcto. W/MountService (931): getVolumeState (/ mnt/usbdisk): Volumen desconocido E/VoldConnector (931): Error al manejar '605 Volumen usbdisk/mnt/usbdisk estado cambiado de 3 (Comprobación) a 4 (Montado)' – Ravi
cualquier suerte aquí, también uso ACTION_MEDIA_REMOVED y otro receptor relacionado con el montaje y desmontaje de USB ... pero nada funciona ... pero en el comando, ¿se muestra el registro usb? – CoDe
@Shubh: La respuesta tal como está escrita sigue siendo precisa, a partir de Android 4.2. – CommonsWare