android 代码控制飞行模式开关 支持4.2以上 root
Posted Mark_YPQ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 代码控制飞行模式开关 支持4.2以上 root相关的知识,希望对你有一定的参考价值。
支持android 4.2以上系统
手机需要获取root权限 通过shell命令开关飞行模式
现在手机大都4.2以上了 代码可以选择性舍弃4.2一下的
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 boolean isAirplaneModeOn()
//4.2以下
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1)
return Settings.System.getInt(getContentResolver(),
Settings.System.AIRPLANE_MODE_ON, 0) != 0;
else //4.2或4.2以上
return Settings.Global.getInt(getContentResolver(),
Settings.Global.AIRPLANE_MODE_ON, 0) != 0;
//设置飞行模式
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 (enabling)
writeCmd(COMMAND_AIRPLANE_ON);
else
writeCmd(COMMAND_AIRPLANE_OFF);
//写入shell命令
public static void writeCmd(String command)
try
Process su = Runtime.getRuntime().exec(COMMAND_SU);
DataOutputStream outputStream = new DataOutputStream(su.getOutputStream());
outputStream.writeBytes(command);
outputStream.flush();
outputStream.writeBytes("exit\\n");
outputStream.flush();
try
su.waitFor();
catch (Exception e)
e.printStackTrace();
outputStream.close();
catch(Exception e)
e.printStackTrace();
以上是关于android 代码控制飞行模式开关 支持4.2以上 root的主要内容,如果未能解决你的问题,请参考以下文章