gpt4 book ai didi

android - Android 10 中没有设备过滤器的 USB_DEVICE_ATTACHED

转载 作者:行者123 更新时间:2023-12-04 23:53:06 25 4
gpt4 key购买 nike

我正在开发一个 Android 应用程序,它为 list 中的 BroadcastReceiver 注册了四个 Intent 过滤器。它们是:

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

请注意,目前没有与这些 Intent 一起注册的 device-filter 元数据。当我在 Android 9(特别是三星 Galaxy S9)上启动此应用程序时,所有 USB 设备都已注册,并且在 BroadcastReceiver 中成功调用了 onReceive 方法。但是,在 Android 10(在 Galaxy S20 上)中运行的相同代码不会调用 onReceive。我意识到设备过滤器在 the developer documentation 中被列为要求。 ,但 Android 9 毫无疑问地接受它。

在理想情况下,我不想使用设备过滤器,因为我的应用包含一个通过用户配置的动态设备过滤选项,用户可以在其中输入 PID/VID 组合供应用使用。

我的问题是:有没有办法通过 list 向 Android 10 应用程序提供“允许所有”设备过滤器?设备过滤器行为的这种变化是一般 Android 的预期功能,还是只是三星的实现?

如果它影响任何事情,这个应用程序是设备管理员。

最佳答案

为任何 future 的谷歌人回答了我自己的问题:在设备过滤器中将 PID 和 VID 的值设为 -1。所以 device_filter.xml 文件看起来像:

<?xml version="1.0" encoding="utf-8">
<resources>
<usb-device product-id="-1" vendor-id="-1" />
</resources>

我不得不翻遍 Android source files为此,似乎没有其他地方提到通配符的选项。

关于android - Android 10 中没有设备过滤器的 USB_DEVICE_ATTACHED,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64751962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com