检测Android设备何时分离

前端之家收集整理的这篇文章主要介绍了检测Android设备何时分离前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个 Android应用程序,需要检测USB外围设备何时连接或分离.首次连接外围设备时它工作正常,但是当它随后被分离时,我没有收到任何通知(即,我没有收到动作为ACTION_USB_DEVICE_DETACHED的Intent).

这是我的AndroidManifest.xml的相关部分:

<activity android:name=".LauncherActivity">
    <intent-filter>
        <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
        <action android:name="android.hardware.usb.action.USB_DEVICE_DETACHED" />
    </intent-filter>
    <Meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" android:resource="@xml/device_filter" />
    <Meta-data android:name="android.hardware.usb.action.USB_DEVICE_DETACHED" android:resource="@xml/device_filter" />
</activity>

还可能值得注意的是,LauncherActivity仅在连接设备时启动服务,并在分离时停止服务.在任何一种情况下,LauncherActivity总是立即完成.所有这些都发生在LauncherActivity.onCreate中.

有任何想法吗?

解决方法

USB_DEVICE_DETACHED是广播意图,因此您可能希望在清单中声明BroadcastReceiver,并使用适当的intent-filter进行分离操作,同时附加元数据.
USB_ACCESSORY_DETACHED也是如此,感兴趣的是谁.

摘要
USB_XXX_ATTACHED是一个活动意图
USB_XXX_DETACHED是广播意图

(其中XXX =设备|附件)

见:http://developer.android.com/guide/components/intents-filters.html

“这些消息传递系统中没有重叠:广播意图仅传递给广播接收者,而不传递给活动或服务”

猜你在找的Android相关文章