【发布时间】:2014-02-25 23:46:13
【问题描述】:
我已经看到了其他解决方案,但似乎没有一个适用。
我正在尝试从执行“logcat -d”的进程中读取数据,但我收到标题中的错误。
我的 AndroidManifest.xml 包括:
<uses-permission android:name="android.permission.READ_LOGS" />
使用adb shell,我可以正常执行命令。
这是一个代码sn-p:
ProcessBuilder procBuilder = new ProcessBuilder();
procBuilder.redirectErrorStream(true);
procBuilder.command("logcat", "-d");
procBuilder.directory(new File("/"));
Process process = procBuilder.start();
//Process process = Runtime.getRuntime().exec("logcat -d");
process.waitFor();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
StringBuilder log = new StringBuilder();
String line = "";
while ((line = bufferedReader.readLine()) != null) {
log.append(line + "\n");
}
执行时,我将第一行视为标题中的错误,仅此而已。
我在网上看到没有 su 就无法执行 logcat,但是有很多这样的代码文章......工作得很好。
关于我可能做错了什么或可以尝试的任何其他想法?
【问题讨论】:
-
该权限在没有 root 的 JB+ 上不起作用。见stackoverflow.com/questions/11461650/…
-
你的设备有root权限吗?
-
@Matthew 谢谢。您可以将其添加为答案吗?在这一点上似乎是正确的。
-
哈我试过了,但它说这是一个微不足道的答案并自动将其变成评论:)
标签: java android logging logcat processbuilder