2012-08-29 14 views
0

假设这样的:植根手机上执行的进程与参数无效

Runtime runtime = Runtime.getRuntime(); 
Process process = runtime.exec(SU); 
DataOutputStream processStream = new DataOutputStream(process.getOutputStream()); 
processStream.writeChars("cat /qwerty"); 
processStream.writeChars(EXIT); 
processStream.flush(); 

int status = process.waitFor(); 

Log.d("EXIT STATUS", String.valueOf(status)); 

process.waitFor();导致当前线程等待永远。我想问题在于那个无效的命令(我故意这么做)。但我该如何处理这种情况呢?

Busybox的1.17.1

回答

1

当您发送使用writeChars命令,它们都在外壳会在同一行,从来没有被实际执行,我认为。你需要放入换行符来执行shell。试试这个:

Runtime runtime = Runtime.getRuntime(); 
Process process = runtime.exec(SU); 
DataOutputStream processStream = new DataOutputStream(process.getOutputStream()); 
processStream.writeChars("cat /qwerty\n"); 
processStream.writeChars("exit \n"); 
processStream.flush(); 

int status = process.waitFor(); 

Log.d("EXIT STATUS", String.valueOf(status)); 
+0

谢谢,我的错。 –