Recently I’ve been trying to receive the intent android.hardware.usb.action.USB_DEVICE_ATTACHED using a broadcast receiver as per all the samples and examples that I’ve seen.
I’ve declared a reciever in the manifest;
<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"/>
I have also done similar in the activity code – onStart and OnStop register/unregister the receiver.
IntentFilter filter = new IntentFilter();
filter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);
registerReceiver(mUsbReceiver, filter);
However, I am finding that the intent is just caught. Observing logcat I can see that attaching a usb device looks for activities to start, while detaching broadcasts the detatch intent. According to the aforementioned samples, this should not be the case.
Am I missing something drastic concerning metadata? I have no problems at all with android.hardware.usb.action.USB_DEVICE_DETACHED. Perhaps this is a bug with the android version installed on the galaxy s3? Perhaps this is an ICS ‘feature’.
Any relavent information is welcome!
This is a known defect:
http://code.google.com/p/android/issues/detail?id=25701
and here:
http://code.google.com/p/android/issues/detail?id=25703
But don’t hold your breath waiting for it to be fixed. While you’re looking at the bug report, star it so you’ll get notified of updates to the report. Likely that will be comments from other people asking for it to be fixed.