我有一个完美运行的USB主机模式应用程序。我插入设备,Android弹出允许应用APPNAME访问USB设备?权限请求窗口,我检查默认使用此USB设备复选框然后点击确定,然后启动我的应用程序,它与USB设备完美通信。
但是...
然后我拔下设备并将其重新插入.Android再次弹出允许应用APPNAME访问USB设备?对话框。 WTH?我已经告诉Android默认情况下这样做了,为什么还要再问我一次?
Icecream Sandwich 4.0.3和Jellybean 4.1都会发生这种情况。
理想情况下,我希望Android能够记住,即使在我重新启动Android设备后,我也已获得此特定USB设备的许可。
那么为什么Android不记得我已经授予了许可?
答案 0 :(得分:8)
这是USB device access pop-up supression?的副本。基本上答案是在USB_DEVICE_ATTACHED上使用intent-filter并避开RequestPermission USB Host Mode API调用。
答案 1 :(得分:3)
我回答了这个here,虽然我认为其他SE网站上的副本是允许的。
在回答为什么的过程中,正如你在上述话题中推测的那样;因为您的硬件每次连接时都会得到不同的标识符,例如/ dev / bus / usb / 001 /,/ dev / bus / usb / 002 /等等。
答案 2 :(得分:2)
Android无法记住我的设备授权但幸运的是,我弄清楚了原因:我在device_filter.xml中使用了十六进制值。在我将其更改为十进制值后,一切正常。我的Android可以记住我的许可证。