我的设置
在Android 10上,权限模型进行了更改,这意味着读取USB设备的序列号需要明确的用户权限,请参阅:https://developer.android.com/preview/privacy/data-identifiers#usb-serial-user-permission。
因此,当接收到连接USB设备的意图时,我会自动请求读取序列号的权限(结果出现在权限对话框中:“允许X访问虚拟COM端口?”。)
为了能够在连接了适当的USB设备时启动应用程序,以前也可以执行此操作(AndroidManifest.xml):
<activity
android:name="MainActivity"
android:screenOrientation="portrait"
>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<intent-filter>
<action
android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
/>
</intent-filter>
<meta-data
android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
android:resource="@xml/my_device_filter"
/>
</activity>
...,这也会在连接新的USB设备(“打开X来处理COM端口?”)时也会出现权限请求对话框。
但是,如前所述,应用程序还必须请求读取序列号的权限,这会导致出现第二个权限对话框。
这两个对话框现已堆叠,如果同意第一个对话框(“打开X来处理虚拟COM端口?”),第二个对话框(“允许X来访问COM端口?”)将自动关闭,导致损坏的功能。
关于如何处理这两个权限的任何建议?