如何在Android 4.2上以编程方式启用和禁用Flight模式?

Mer*_*yth 25 android airplane

有没有办法在Android 4.2上禁用或启用飞行模式?

我使用的代码仅适用于以前的Android版本:

android.provider.Settings.System.putInt(
    c.getContentResolver(),   
    android.provider.Settings.System.AIRPLANE_MODE_ON, enable ? 0 : 1
);
Run Code Online (Sandbox Code Playgroud)

Dav*_*sNT 36

root设备上存在一个简单的解决方法.

要启用飞行模式,可以使用以下root shell命令:

settings put global airplane_mode_on 1
am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true
Run Code Online (Sandbox Code Playgroud)

要禁用飞行模式,可以使用以下root shell命令:

settings put global airplane_mode_on 0
am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false
Run Code Online (Sandbox Code Playgroud)

信息来自这里

免责声明:此信息"按原样"提供,不提供任何形式的保修.


Com*_*are 23

除了由固件签名密钥签名或安装在系统分区上的应用程序(通常由root用户设备用户)外,这种情况不再可能发生.

  • http://commonsware.com/blog/2012/11/20/miscellaneous-android-4p2-regressions.html (2认同)

Sru*_*Suk 13

您不能像官方Android 4.2 API文档中所写的那样

定义的某些设备设置Settings.System现在是只读的.如果您的应用尝试将已更改的设置写入 Settings.System已移动的设置Settings.Global,则在Android 4.2及更高版本上运行时,写入操作将无提示失败.即使您的值为android:targetSdkVersionandroid:minSdkVersion低于17,您的应用也无法修改Settings.Global在Android 4.2及更高版本上运行时已移至的设置.

但是,如果您是OS Developer,则可以在设置这些权限时编写它

<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
Run Code Online (Sandbox Code Playgroud)

然后写和读,

// To Write
Settings.Global.putString(getContentResolver(), "airplane_mode_on", "1");

// To Read
String result = Settings.Global.getString(getContentResolver(), Settings.Global.AIRPLANE_MODE_ON);
Toast.makeText(this, "result:"+result, Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)

  • 操作系统开发人员到底是什么?谁有 root 过的手机吗?我怎样才能让它发挥作用? (2认同)