2

我在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")。我认为我的问题没有正常的答案。唯一的方法 - 解析进程的输出。

4

0 回答 0