微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

检测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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐