Android代码控制飞⾏模式开关(4.2及以上版本亲测有效)前⾔
由于业务需要, 需要代码控制飞⾏模式的开启和关闭, 百度了⼀圈发现, ⼤部分的代码都是android4.2的上⾯可以⽤, 但是对于现在的android6.0, 7.0, 8.0都不能⽤, 因为只有系统应⽤才能有这个权限. 那么问题来了, 如果我⾮要⽤代码来控制飞⾏模式, 怎么办呢? 猿⽈:只要智商不滑坡, ⽅法总⽐困难多.
1.通过⼴播(⽆效,需要配置权限,但是配置的权限只有系统应⽤才能⽤)
private void setAirPlaneMode(Context context, boolean enable) {
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.JELLY_BEAN) {
工业洗地机哪个牌子好Settings.System.ContentResolver(), Settings.System.AIRPLANE_MODE_ON, enable ? 1 : 0);
} else {
Settings.Global.ContentResolver(), Settings.Global.AIRPLANE_MODE_ON, enable ? 1 : 0);
}
Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
intent.putExtra("state", enable);
context.sendBroadcast(intent);阴阳师缘结神
}
2.通过adb⽅式(亲测有效)
private final static String COMMAND_AIRPLANE_ON = "settings put global airplane_mode_on 1 \n " +
"am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true\n ";
private final static String COMMAND_AIRPLANE_OFF = "settings put global airplane_mode_on 0 \n" +
" am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false\n ";
private final static String COMMAND_SU = "su";
//设置飞⾏模式痴痴的等
public void setAirplaneModeOn(boolean isEnable) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) {
Settings.System.putInt(getContentResolver(),
Settings.System.AIRPLANE_MODE_ON, isEnable ? 1 : 0);
Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
intent.putExtra("state", isEnable);
sendBroadcast(intent);
} else {//4.2或4.2以上
if (isEnable){
writeCmd(COMMAND_AIRPLANE_ON);是老中医
}else {
writeCmd(COMMAND_AIRPLANE_OFF);
}
}
}
//写⼊shell命令
public static void writeCmd(String command){
客房部工作总结try{
Process su = Runtime().exec(COMMAND_SU);
DataOutputStream outputStream = new OutputStream());
outputStream.writeBytes(command);
qq农场升级
outputStream.flush();
outputStream.writeBytes("exit\n");
outputStream.flush();
try {
su.waitFor();
} catch (Exception e) {
e.printStackTrace();
}
outputStream.close();
}catch(Exception e){
e.printStackTrace();
}
}
这种⽅式如果你是android4.2之前的版本,可以直接⽤, 如果是之后的版本, 那就需要⽤adb命令了, 那你如果要⽤adb命令, 你的⼿机就需要获取root权限(⾃⾏百度root权限获取), 当你运⾏到写⼊adb命令的代码的时候, ⼿机就会⾃动弹窗提⽰是否授予root权限.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论