我跑:
Process process = Runtime.getRuntime().exec("logcat -d");
BufferedReader buffuerReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
为了读取logcat
,但它以某种方式返回一个空缓冲区:
查看buf
:
(它是空的)
请注意,在eclipse中它不是空的。另外,如果我从logcat -d
(即cmd:adb shell
)运行adb shell logcat -d
,它也不是空的。
答案 0 :(得分:0)
我正在处理类似的事情,我发现自从JellyBean你需要root访问权限或权限android.permission.READ_LOGS
,它只能授予常规设备上的系统应用程序,以便读取外部的日志文件ADB。
因此,如果/有了root设备,您可以:
1)在清单中添加权限,并使用adb shell通过以下命令授予权限:
pm grant <package name> android.permission.READ_LOGS
请注意,您可能需要在授予权限后重新启动应用程序。
2)执行命令以root身份运行时使用su
:
Process process = Runtime.getRuntime().exec("su logcat -d");
使用这两种方法之一,您应该能够从logcat命令获取输出。我在我的应用程序中使用了后一种方法,它对我有用。
希望它有所帮助!