Runtime waitFor 阻塞

见识决定命运 2016-10-21 05:58:12
我用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权限才能执行。
...全文
328 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
见识决定命运 2016-10-24
  • 打赏
  • 举报
回复
谁有思路,提供一下

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧