Runtime waitFor 阻塞
我用Runtime执行命令的时候会阻塞,在执行su后再运行其它的命令,再使用waitFor时就会阻塞住。不执行su就没事。
代码如下:
Process process = Runtime.getRuntime().exec("su");
dataOutputStream = new DataOutputStream(process.getOutputStream());
dataOutputStream.writeBytes(cmd); //cmd为一个可执行文件
//dataOutputStream.writeBytes("exit\n"); //加上这名的话不会阻塞,但我需要接收cmd的返回值。加上这行后,exitValue()得到的值就是执行 exit 命令的返回值了。
dataOutputStream.flush();
try {
tempRet = process.waitFor();
Log.d(TAG, "run waitFor:" + tempRet);
} catch (InterruptedException e) {
e.printStackTrace();
}
tempRet = process.exitValue();
我最终想的结果是得到cmd可执行文件return 出来的值,不执行su时可以得到,但是加上su后就会阻塞,我的cmd需要root权限才能执行。