9

在 Android 应用程序中,我需要特定 USB 设备(已知供应商/产品 ID)的权限,该设备永久插入 Android 设备。

到目前为止,我已经做了以下观察:

  • 使用UsbManager.requestPermission()时,重新插入/重新启动时会取消权限,并且弹出窗口的复选框似乎对此行为没有任何影响
  • 使用意图过滤器时,重新插入 USB 设备时会正确重新授予权限(即使在重新启动后重新插入,如果选中了弹出窗口的复选框)但重新启动后不会重新授予权限,除非我拔下并重新插入 USB 设备.

是否可以确保权限弹出窗口只显示一次?(特别是在安卓设备重启且USB设备保持插入的情况下)

注意:该应用程序未安装在系统文件夹中,因此无法使用 MANAGE_USB 权限。

4

2 回答 2

9

解决方案是使用意图过滤器并android:directBootAware="true"在关联的活动上添加属性,以便USB_DEVICE_ATTACHED在启动后正确接收事件。

于 2019-02-05T15:31:11.370 回答
0

保持 USB 权限是不可能的,因为重新启动选项通常会强制停止一切,这会使 USB 也被拔掉。

有一种可能要求在重新启动时重新插入 USB。

是否可以确保权限弹出窗口只显示一次?

因为如果您正在连接 USB,这会导致死锁情况,因为他们会将其拔出,而不是干扰系统。

因此无法将其设置为 USB Plug-in。

于 2019-02-05T07:21:06.387 回答