我在Android上使用getRuntime().exec()与控制台应用程序通信。
这段代码:
Process process = Runtime.getRuntime().exec(true ? "su" : "sh");
// InputStream for program
DataOutputStream os = new DataOutputStream(process.getOutputStream());
//I output info on screen in Gobbler
StreamGobbler errorGobbler = new
StreamGobbler(process.getErrorStream(), "ERROR");
StreamGobbler outputGobbler = new
StreamGobbler(process.getInputStream(), "OUTPUT");
我怎么知道command1被执行了?
os.writeBytes(command1 + "\n");
// Here
os.writeBytes(command2 + "\n");
process.waitFor()等到此 Process 对象表示的进程终止。
谢谢!
在得到 command1 的输出后,我会知道 command2。
这不是重复的问题。@Bill the Lizard,在我的情况下process.watFor()不会执行。当我不发送时它会等待os.write("exit"+"\n")。我认为我的问题没有正常的答案。唯一的方法 - 解析进程的输出。