【发布时间】:2013-03-06 18:48:32
【问题描述】:
我有一个将与 USB 设备交互的 Android 应用程序,在 Android developer official documentation for Obtaining permission to communicate with a device 中它说:
注意:如果您的应用程序使用 Intent 过滤器在 USB 设备连接时发现它们,如果用户允许您的应用程序处理该 Intent,它会自动获得许可。如果没有,您必须在连接到设备之前在您的应用程序中明确请求权限。
意图过滤器将在 AndroidManifest.xml 中声明,并使用包含供应商 ID 和产品 ID 的资源文件。
如果我插入我的设备,即使声明了 Intent,也不会发生任何事情。
所以我必须使用同一官方文档中提到的方法,其中涉及明确请求许可。
这可行,我可以与设备通信,但碰巧用户每次启动应用程序或重新连接设备时都必须授予权限。最后,这会在每次插入设备并启动应用程序时向用户显示一条消息,要求确认,并且每次都给予相同的权限是不可取的。
所以如果“...自动接收权限...”部分不起作用。
如何使意图过滤器起作用?
我错过了什么?
我还有其他选择吗?
这个问题:Android USB Permissions Dialog never appears 有相反的问题,但该解决方案对我不起作用。
如下所述,将应用程序设为系统应用程序并绕过权限对我也不起作用:USB open accessory permissions through a service in android
非常感谢任何帮助
【问题讨论】:
标签: android intentfilter android-permissions usb