Recientemente he intentado recibir el intento android.hardware.usb.action.USB_DEVICE_ATTACHED utilizando un receptor de difusión según todas las muestras y ejemplos que he visto.USB_DEVICE_ATTACHED solo inicia la actividad de Galaxy S3 ICS
He declarado un receptor en el manifiesto;
<receiver android:name=".UsbDeviceReceiver">
<intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
<action android:name="android.hardware.usb.action.USB_DEVICE_DETACHED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
<meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
android:resource="@xml/device_filter"/>
También he hecho algo similar en el código de actividad - onStart y OnStop registrar/anular el registro del receptor.
IntentFilter filter = new IntentFilter();
filter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);
registerReceiver(mUsbReceiver, filter);
Sin embargo, me doy cuenta de que la intención es atrapada. Al observar logcat, veo que al conectar un dispositivo usb se buscan actividades para comenzar, mientras se desconecta la difusión del intento de detach. De acuerdo con las muestras antes mencionadas, este no debería ser el caso.
¿Me falta algo drástico con respecto a los metadatos? No tengo ningún problema con android.hardware.usb.action.USB_DEVICE_DETACHED. Tal vez este es un error con la versión de Android instalada en la galaxia s3? Quizás esta es una 'característica' de ICS.
¡Cualquier información relativa es bienvenida!
El código (ver por ejemplo) https://github.com/android/platform_frameworks_base/blob/master/services/java/com/android/server/usb/UsbSettingsManager.java lo hace no envíe una transmisión en el archivo adjunto del dispositivo, solo inicia la actividad específicamente registrada para manejar ese dispositivo. Alguien envió un parche en gerrit para enviar la transmisión, pero parece haber sido rechazado debido a un desajuste con la filosofía de diseño. –
Hola Chris, gracias por la respuesta concisa. Es un alivio que esto no sea solo un problema con mi dispositivo. ¿Todavía existe el envío del parche para que pueda leer con más detalle las razones de este comportamiento? Mi solución en este momento implicará una actividad invisible y mi propia transmisión. Se siente como un truco. Publicaré el código cuando haya terminado. – Gusdor