Android在代码中执行shell命令,针对root命令

来源:互联网 发布:广联达算量软件 编辑:程序博客网 时间:2024/06/05 11:09
public void runRootCommand(String command) {        Process process = null;        DataOutputStream dataOutputStream = null;        DataInputStream dataInputStream = null;        StringBuffer wifiConf = new StringBuffer();        try {            process = Runtime.getRuntime().exec("su");            dataOutputStream = new DataOutputStream(process.getOutputStream());            dataInputStream = new DataInputStream(process.getInputStream());            dataOutputStream                    .writeBytes(command+"\n");            dataOutputStream.writeBytes("exit\n");            dataOutputStream.flush();            InputStreamReader inputStreamReader = new InputStreamReader(                    dataInputStream, "UTF-8");            BufferedReader bufferedReader = new BufferedReader(                    inputStreamReader);            String line = null;            while ((line = bufferedReader.readLine()) != null) {                wifiConf.append(line);            }            bufferedReader.close();            inputStreamReader.close();            process.waitFor();            Log.d("shell命令执行结果:",process.exitValue()+"");        } catch (Exception e) {            e.printStackTrace();        } finally {            try {                if (dataOutputStream != null) {                    dataOutputStream.close();                }                if (dataInputStream != null) {                    dataInputStream.close();                }                process.destroy();            } catch (Exception e) {                e.printStackTrace();            }        }    }
process.exitValue()返回0时表明shell命令执行成功