我正在开发的应用程序通过 USB 连接与设备成功连接。
此外,它现在会记住来自不同启动的设备,正如以下存储 USB 默认连接的线程中所指出的那样。
但是,这会产生在连接 USB 设备时始终启动 Activity 的不良影响。在不启动应用程序的情况下,我无法记住默认值。在连接上启动应用程序并不是理想的效果。下面的小代码示例是清单当前的样子,以便快速浏览一下存储在内存中的默认 USB 连接,以便将来连接。是否可以在不导致应用程序启动的情况下完成默认值的存储?
<activity
android:name="com.MainScreen"
android:theme="@style/Theme.Default"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_name">
<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/device_filter" />
</activity>
Run Code Online (Sandbox Code Playgroud)
我一直在想,也许有一种类别可以添加到意图过滤器中,将其指定为不可启动的意图。在活动期间监听但由活动处理的东西。然而到目前为止,我还没有找到这个。
更新:
在清单中的服务或接收器内声明 USB 设备连接的意图也是存储连接信息的尝试。但是,只有活动中的 Intent 会记住连接状态,以便在稍后的给定时间点重新连接时不需要询问用户。看起来它的设计目的只是为了保存状态并在连接时启动应用程序。有点奇怪,但没有解决方法可以解决无法启动问题并记住 USB 连接设备的默认连接。
您不必总是启动活动。您可以让后台服务安静地处理意图。
<service android:name=".MyService">
<intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
</intent-filter>
</service>
Run Code Online (Sandbox Code Playgroud)
更新:
您可能必须明确请求某些权限。这是你应该做的:
| 归档时间: |
|
| 查看次数: |
2224 次 |
| 最近记录: |