重启后保持USB权限,无需重新插入设备

sda*_*bet 7 android android-usb

在Android应用中,我需要获得特定USB设备(已知供应商/产品ID)的许可,该设备会永久插入Android设备.

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

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

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

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

sda*_*bet 8

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