最近,我一直在尝试根据我见过的所有示例和示例使用广播接收器接收意图 android.hardware.usb.action.USB_DEVICE_ATTACHED。
我已经在清单中声明了一个接收者;
<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"/>
我在活动代码中也做了类似的事情——onStart 和 OnStop 注册/注销接收器。
IntentFilter filter = new IntentFilter();
filter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);
registerReceiver(mUsbReceiver, filter);
但是,我发现意图被抓住了。观察 logcat 我可以看到附加 USB 设备会寻找要启动的活动,而分离则广播分离意图。根据上述样本,情况不应该如此。
我是否遗漏了一些关于元数据的激烈内容?我对 android.hardware.usb.action.USB_DEVICE_DETACHED 没有任何问题。也许这是安装在galaxy s3上的android版本的错误?也许这是 ICS 的“功能”。
欢迎任何相关信息!