gpt4 book ai didi

android - 记住 USB 连接,但不要启动应用程序

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:39:08 25 4
gpt4 key购买 nike

我正在处理的应用程序通过 USB 连接成功连接到设备。

此外,它现在可以记住来自不同发布的设备,正如以下线程中指出的那样 storing usb default connections .

但是,这会留下在连接 USB 设备时始终启动 Activity 的不良影响。如果不启动应用程序,我就无法记住默认值。在连接上启动应用程序不是预期的效果。下面的小代码示例是 list 当前的样子,以便快速浏览存储在内存中的默认 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>

我一直在想,也许有一种类型的类别可以添加到 Intent 过滤器中,将其指定为不可启动的 Intent 。在 Activity 期间被监听但由 Activity 处理的东西。到目前为止,我还没有找到这个。

更新:

在 list 中的服务或接收器中声明 USB 设备连接的 Intent 也是存储连接信息的尝试。但是,只有 Activity 中的 Intent 会记住连接状态,因此当它在稍后的给定时间点重新连接时不需要询问用户后续时间。它看起来好像只是为了保存状态并在连接时启动应用程序而设计的。有点奇怪,但没有解决方法可以让无法启动与记住 USB 连接设备的默认连接相结合。

最佳答案

您不必总是启动 Activity 。您可以让后台服务安静地处理 Intent 。

<service android:name=".MyService">
<intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
</intent-filter>
</service>

更新:

您可能必须明确请求某些权限。这是你应该做的:

  1. 当用户安装应用并首次打开时,请求 USB 相关权限。
  2. 如上所述,设置一个服务来处理 USB 连接事件。连接后,只要连接了可识别的设备,就会在状态栏中显示持久通知。
  3. 状态栏通知对于通知用户需要更多权限以及可以访问主要 UI Activity 也很有用。

关于android - 记住 USB 连接,但不要启动应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18058911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com