我们有一个应用程序,可以随时使用Android和USB与Ardupilot进行通信。我们的手机正在记录来自ardupilot和其他一些东西的信息。问题是,通常在登录时我们无法轻松访问手机屏幕。这意味着如果我们遇到USB电缆松动的问题(经常发生这种情况),我们需要访问屏幕以授予USB设备许可。有没有办法永远授予许可。该应用程序只是内部的,所以我们不担心安全性,但需要方便。
注意:我们已经尝试选择"记住以后的选择",但对话框始终打开,它似乎不记得我们的选择。
编辑: 根据要求,我们要求USB的清单行:
<uses-feature android:name="android.hardware.usb.host" />
...
<activity
android:name="..."
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name"
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" />
<meta-data
android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
android:resource="@xml/device_filter" />
</intent-filter>
</activity>
以下是我们的设备过滤器:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- 0x0403 / 0x6001: FTDI FT232R UART -->
<usb-device vendor-id="1027" product-id="24577" />
<!-- 0x0403 / 0x6015: FTDI FT232R UART -->
<usb-device vendor-id="1027" product-id="24597" />
<!-- 0x2341 / 0x0010: APM 2.5 device -->
<usb-device vendor-id="9025" product-id="16" />
<!-- 0x26ac / 0x0010: APM 2.5 device -->
<usb-device vendor-id="9900" product-id="16" />
<!-- 0x2341 / Arduino -->
<usb-device vendor-id="9025" />
<!-- 0x16C0 / 0x0483: Teensyduino -->
<usb-device vendor-id="5824" product-id="1155" />
<!-- 0x10C4 / 0xEA60: CP210x UART Bridge -->
<usb-device vendor-id="4292" product-id="60000" />
</resources>