通过 ADB 打开飞行模式

新手上路,请多包涵

我到处都看了,我还没有找到这个问题的具体答案。我希望找到一种从 ADB 切换飞行模式的方法,该方法不以任何方式涉及 GUI。我找到并使用了调用菜单然后使用keyevents打开飞行模式的方法,但是由于需要考虑UI布局可能发生的变化,这种方法只是一个临时解决方案。

我开始认为没有办法通过意图打开或关闭飞行模式,但如果您有任何信息,我将不胜感激。

原文由 Charles Daily 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
1 个回答

首先,我绝不会像此处大多数答案中所建议的那样依赖 盲目浏览 UI 的解决方案。更多内容在下面的注释中。

我喜欢 G murali 的第一个答案,它建议执行以下操作以启用飞行模式:

 adb shell settings put global airplane_mode_on 1

不幸的是,它不起作用。它只是改变了 飞行模式 图标的状态,但所有 无线电仍然处于活动状态

它缺少一个非常重要的部分,即在设置更改后立即 广播意图 以通知应用程序 飞行模式 状态已更改。

启用 飞行模式,请使用以下命令:

 adb shell settings put global airplane_mode_on 1
adb shell am broadcast -a android.intent.action.AIRPLANE_MODE

禁用 飞行模式,您必须将设置更改为 0 并再次广播意图:

 adb shell settings put global airplane_mode_on 0
adb shell am broadcast -a android.intent.action.AIRPLANE_MODE

它已经 过测试并可在 Android 6 上运行


笔记

许多答案建议使用一个活动来打开飞行模式设置,然后模拟一些按键以在 UI 中导航。 我不建议依赖那个。在打开“设置”对话框之前,设备上可能只有短暂的滞后和按键,或者同时会出现一些意想不到的对话框。在这两种情况下,按键都会导致一些意想不到的事情,可能是有害的。

此外,不同品牌、型号、Android 版本等设备上的 UI 可能不同。我已经在 Samsung Galaxy S4 (Android 6.0.1) 上对其进行了测试,但它在那里不起作用。这可能是三星和默认用户界面之间的差异。

设置操作方法应该是绝对安全的。

—更新 2022 年 10 月 如果您遇到有关安全设置的错误,现在最好的解决方案是:对于移动数据: adb shell svc data disable 对于 wifi: adb shell svc wifi disable

原文由 David Ferenczy Rogožan 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏