2011-11-11 23 views
5

¿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 
     } 
} 

Respuesta

2

Android, a nivel SDK, no tiene un concepto de unidades USB. No hay reglas para dónde deben montarse, las transmisiones para cuando aparecen/desaparecen, etc. Quizás alguna estandarización en esta área vendrá en futuros lanzamientos de Android, pero no está allí hoy.

+0

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

+0

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

+1

@Shubh: La respuesta tal como está escrita sigue siendo precisa, a partir de Android 4.2. – CommonsWare

2

Si detecta conectar y desconectar el USB funcionará "android.hardware.usb.action.USB_DEVICE_ATTACHED" se puede utilizar. Asegúrese de que la definición del receptor y el filtro de intención también se agreguen en el manifiesto.

Cuestiones relacionadas