目前我有使用终端模拟器应用程序在android上运行的shell脚本命令。需要准备一个应用程序从我的android应用程序调用shell脚本显示我的应用程序上的shell脚本的结果。任何人都可以建议最好的方法。
答案 0 :(得分:0)
来自here
的已使用代码 public void runShellCommand(String[] cmds) throws Exception {
Process p = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(p.getOutputStream());
InputStream is = p.getInputStream();
for (String temp : cmds) {
os.writeBytes(temp+"\n");
int read= 0;
byte[] buff = new byte[4096];
// if cmd requires an output
// due to the blocking behaviour of read(...)
boolean cmdRequiresAnOutput = true;
if (cmdRequiresAnOutput) {
while( is.available() <= 0) {
try { Thread.sleep(200); } catch(Exception ex) {}
}
while( is.available() > 0) {
read = is.read(buff);
if ( read <= 0 ) break;
String str = new String(buff,0,read);
console.println("#> "+str);
}
}
}
os.writeBytes("exit\n");
os.flush();
}
长时间使用的命令需要休眠。