通过ADB在Android 4.1或更早版本中打开飞行模式

5

我发现了这个问题,我尝试了以下方法:

settings put global airplane_mode_on 1
am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true

它在Android 4.4.1上运作得非常好,

但在4.0.1上不起作用。(设置:未找到/支持4.2或更高版本。)

所以,我再次尝试以下步骤

adb shell am start -a android.settings.AIRPLANE_MODE_SETTINGS
adb shell input keyevent 19
adb shell input keyevent 23
adb shell input keyevent 4

此外,这项工作很奇怪。

“AIRPLANE_MODE_SETTINGS”窗口弹出->关注飞行模式(不选中)->音量增加........

然后屏幕关闭,不起作用。

因此我认为这种方式不好。

问题:如何在4.1或更早版本中像“设置放置全球飞行模式1”的工作一样工作?

1个回答

4

AIRPLANE_MODE_ON曾经属于system命名空间,后来被移动到global。因此,旧的设置命令应该是settings put system airplane_mode_on 1。但由于您的构建中不可用settings命令,您可以直接在数据库中修改该值。

sqlite3 /data/data/com.android.providers.settings/databases/settings.db "update system set value='1' where name='airplane_mode_on';"

谢谢您的回答。我已经在Android 4.0.1上尝试过,但是找不到二进制文件“settings”。随Android 4.2一起发布的新命令行二进制文件“settings” - RedPetals
settings 命令只是 content://settings 内容提供程序的包装器。您可以直接在数据库中修改值。 - Alex P.
编辑2.3.3中的值对于是否拥有互联网访问没有影响。无论将该值设置为1或0,我仍然可以访问互联网。 - polym
@polym 在设置更改后,您必须按照OP问题中所述广播意图。 - David Ferenczy Rogožan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接