您的位置:首页 > 移动开发 > Android开发

android打开飞行模式-用adb命令控制飞行模式开关

2017-08-23 20:45 1386 查看
public static String HigherAirplaneModePref1 = "settings put global airplane_mode_on ";
public static String HigherAirplaneModePref2 = "am broadcast -a android.intent.action.AIRPLANE_MODE --ez state ";
/**
* @ value =1   打开飞行模式
* @ value =2   关闭飞行模式
*
* */
public static void setSettingsOnHigh(int value) {

String commond = HigherAirplaneModePref1 + value + ";";
if (value == 1)
commond += HigherAirplaneModePref2 + "true";
else
commond += HigherAirplaneModePref2 + "false";
String result = ShellUtil.runRootCmd(commond);
}
//飞行模式工具类
import android.util.Log;

import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class ShellUtil
{
private static String TAG = ShellUtil.class.getName();

public static String runCommand(String command)
{
Process process = null;
String result = "false";
try
{
process = Runtime.getRuntime().exec(command);
process.waitFor();
result = inputStreamToString(process.getInputStream());
Log.e(TAG, result);
} catch (Exception e)
{
return result;
} finally
{
try
{
process.destroy();
} catch (Exception e)
{
}
}
return result;
}

//http://blog.csdn.net/alexander_xfl/article/details/9150971
//command can be some cmd, use ; to split

public static String runRootCmd(String command)
{
return runRootCmd(command,  ";");
}

public static String runRootCmd(String command, String split)
{
Process process = null;
DataOutputStream os = null;
String result = "false";
try
{
process = Runtime.getRuntime().exec("su");
OutputStream outstream = process.getOutputStream();
DataOutputStream dataOutputStream = new DataOutputStream(outstream);
String temp = "";
String[] cmds = command.split(split);
for(int i = 0; i < cmds.length; i++)
temp += cmds[i] + "\n";
dataOutputStream.writeBytes(temp);
dataOutputStream.flush();
dataOutputStream.writeBytes("exit\n");
dataOutputStream.flush();
process.waitFor();
result = inputStreamToString(process.getInputStream());
Log.i(TAG, temp);

} catch (Exception e)
{
Log.e(TAG, e.getMessage());
return result;
} finally
{
Log.i(TAG, result);
try
{
if (os != null)
{
os.close();
}
process.destroy();
} catch (Exception e)
{
Log.e(TAG, e.getMessage());
}
}
return result;
}

private static String inputStreamToString(InputStream in) throws IOException
{
StringBuffer out = new StringBuffer();
byte[] b = new byte[1024];
for (int n; (n = in.read(b)) != -1;)
{
out.append(new String(b, 0, n));
}
return out.toString();
}
}
//权限多余的去掉就可以
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- 连接互联网Internet权限 -->
<!-- GPS定位权限 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- 获取ip权限 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!-- SD卡存储信息 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 网络是否连接 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 手机imei -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CAMERA" />

<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
有问题发送邮件17600065050@163.com或者在下方评论即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: