我目前正在尝试使用Android 6.0版以编程方式切换飞行模式。
我已经做了大量研究,有人说从4.2版开始就不可能了,而另一些人说仍然有一些变通办法,我已经尝试过了,但对我却不起作用。
我上次尝试的操作如下:
public static boolean isAirplaneModeOn(Context context) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) {
return Settings.System.getInt(context.getContentResolver(),
Settings.System.AIRPLANE_MODE_ON, 0) != 0;
} else {
return Settings.Global.getInt(context.getContentResolver(),
Settings.Global.AIRPLANE_MODE_ON, 0) != 0;
}
}
public static void setSettings(Context context, int value) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) {
Settings.System.putInt(
context.getContentResolver(),
Settings.System.AIRPLANE_MODE_ON, value);
} else {
Settings.Global.putInt(
context.getContentResolver(),
Settings.Global.AIRPLANE_MODE_ON, value);
}
}
但是这里出现错误Permission denial: writing to settings requires:android.permission.WRITE_SECURE_SETTINGS
,我知道我可以在模拟器上更改这些设置,但是也可以在外部设备上更改这些设置吗?在另一个话题中,有人说对于某些设备是可行的,但我无法弄清楚有关我的设备(HUAWEI P8 Light)的任何特定信息。所以我的问题是,有可能这样做,还是有更好的方法呢?我也阅读了一些有关使用ADB切换飞行模式的信息,但是他们说这将需要相同的权限。我希望有人能帮助我。 :)
答案 0 :(得分:0)
此功能不再适用于非系统应用程序,因为Google在API级别上拒绝了此操作。在有根电话上可以通过
启用/禁用数据连接