2 usb android broadcastreceiver
我正在开发一个 Android 应用程序,它在清单中为 BroadcastReceiver 注册了四个意图过滤器。这些是:
android.hardware.usb.action.USB_DEVICE_ATTACHED
android.hardware.usb.action.USB_DEVICE_DETACHED
android.hardware.usb.action.USB_ACCESSORY_ATTACHED
android.hardware.usb.action.USB_ACCESSORY_DETACHED
Run Code Online (Sandbox Code Playgroud)
请注意,目前没有device-filter与任何这些意图一起注册的元数据。当我在 Android 9(特别是在三星 Galaxy S9 上)启动这个应用程序时,任何和所有 USB 设备都被注册,并且onReceive在 BroadcastReceiver 中成功调用了该方法。但是,在 Android 10(在 Galaxy S20 上)中运行的相同代码不会调用onReceive. 我意识到设备过滤器被列为开发人员文档中的一项要求,但 Android 9 毫无疑问地接受了它。
在理想的世界中,我不想使用设备过滤器,因为我的应用程序通过用户配置包含一个动态设备过滤选项,他们在其中输入应用程序要使用的 PID/VID 组合。
我的问题是:有没有办法通过清单为 Android 10 应用程序提供“允许所有”设备过滤器?设备过滤器行为的这种变化一般是 Android 的预期功能,还是三星的实现?
如果它影响任何事情,这个应用程序是一个设备管理员。
小智 5
为任何未来的谷歌员工回答了我自己的问题:在设备过滤器中为 PID 和 VID 设置 -1 的值。所以device_filter.xml文件看起来像:
<?xml version="1.0" encoding="utf-8">
<resources>
<usb-device product-id="-1" vendor-id="-1" />
</resources>
Run Code Online (Sandbox Code Playgroud)
为此,我不得不浏览Android 源文件,似乎没有其他地方提到通配符选项。
| 归档时间: |
|
| 查看次数: |
174 次 |
| 最近记录: |