如何避免连接 USB 驱动器时应用程序自动启动

193次阅读
没有评论

问题描述

在将 USB 驱动器连接到三星平板电脑(使用 USB 连接套件)时,发现 Android 4.0.4 会自动启动存档应用程序,以便查看存储在闪存驱动器中的内容。用户还发现,当连接设备时,系统会弹出消息匹配已连接设备与用户的应用程序。用户想知道是否有可能避免这种自动启动?如何做到这一点?

解决方案

请注意以下操作可能涉及系统权限和安全性问题,操作前请谨慎备份数据并对操作后果负责。

方案1:调整应用程序设置

为什么会出现应用程序自动启动?

首先,我们需要了解背后的一些信息。在 Android 上,许多操作都是“事件驱动”的。也就是说,当发生“某事”时,系统会发布一条相应的“广播”。一些常见且易于理解的事件包括:
– 系统启动完成
– 存储设备(已插入/已卸载,通常是 SD 卡或某些外部驱动器)
– 电池电量低
– 网络状态改变

应用程序可以为特定的广播事件(意图)注册“监听器”,因此它们在事件发生时会启动/唤醒/通知。例如:
– 媒体扫描程序希望在新存储设备被连接时得到通知,以便检查是否有音乐/图片/视频要插入其内部数据库。
– 位置服务希望了解网络变化:如果有新网络接入,可能需要确定当前位置。
– 许多应用程序(太多了)希望在系统启动时启动。

因此,显然,您的存档应用程序已注册了存储广播的监听器,同样,您的应用程序也是如此。

如何摆脱这个问题?

对于您自己的应用程序,您可以相应地调整其代码。但这不是我们在这里要讨论的任务,如果需要,您可以在我们的姊妹站点 StackOverflow 上进行讨论。

对于其他所有应用程序(以下内容也适用于其他组合),您需要将设备 root 化(详细信息可以在 rooting 标签页面找到)。然后,前往 Play 商店并获取一个像 AutoRun Manager PRO 这样的应用程序(是的,如果您选择了这个应用程序,那么以下内容将需要 Pro 版本。我还是选择了它,因为在一段时间前的测试中它在我的测试中表现最佳):

如何避免连接 USB 驱动器时应用程序自动启动

正如您在屏幕截图中看到的那样,AutoRun Manager 允许您单独禁用每个应用程序可能已注册的监听器。它们的名称(在大多数情况下)相当描述性。因此,使用 ARM,进入其“高级模式”,查找存档应用程序,并检查它已注册的监听器。禁用听起来合理的监听器,您的问题应该就解决了。

您随时可以更改这个设置。每当修改的应用程序被更新时,您将不得不再次进行操作。您还可以只需两次点击即可简单地恢复所有更改,因为 ARM 具有特定的“恢复”功能。

PS:您已经将问题标记为自动启动,您可以将鼠标悬停在该标签上,并选择“信息”链接。这将带您到标签维基页面,您可以在那里找到我刚刚写的大部分内容(也许还有一些额外的信息)– 所以我建议您也阅读一下。此外,将其视为将来的提示:许多标签维基都包含急救信息。在许多情况下,这可能已经足以解决问题。

正文完