【发布时间】:2018-01-14 06:14:22
【问题描述】:
我正在尝试在 android 应用程序 (Java) 中执行 shell 命令并读取输出。我可以读取大多数命令的输出,但是当我在命令中使用管道时,我什么也得不到。设备已root。
我找到了this,但它不想在 Android 上运行。我已经尝试过输出重定向,例如命令末尾的“2>&1”但没有运气。
提前致谢!
工作命令
pm 列出包
命令无效
pm 列出软件包 | grep com.myapp
代码:
public String executeCommand(String command) {
String output = "";
InputStream inputStream = Runtime.getRuntime().exec(command).getInputStream();
while( inputStream.available() <= 0)
try { Thread.sleep(500); } catch(Exception ex) {}
java.util.Scanner s = new java.util.Scanner(inputStream);
while(s.hasNext())
output += s.nextLine() + "\n";
return output;
}
为简洁起见,尝试捕获省略的块
【问题讨论】: