Java 无法打开日志设备'/dev/log/main';:拒绝许可
我见过其他解决方案,但似乎都不适用 我试图从一个执行“logcat-d”的进程中读取数据,我收到了标题中的错误 My AndroidManifest.xml包括:Java 无法打开日志设备'/dev/log/main';:拒绝许可,java,android,logging,logcat,processbuilder,Java,Android,Logging,Logcat,Processbuilder,我见过其他解决方案,但似乎都不适用 我试图从一个执行“logcat-d”的进程中读取数据,我收到了标题中的错误 My AndroidManifest.xml包括: <uses-permission android:name="android.permission.READ_LOGS" /> 执行时,我将第一行视为标题中的错误,仅此而已 我在网上读到,如果没有su,logcat是无法执行的,但是有很多这样的代码……工作得很好 关于我可能做错了什么或可以尝试什么,还有其他想法吗?它被列
<uses-permission android:name="android.permission.READ_LOGS" />
执行时,我将第一行视为标题中的错误,仅此而已
我在网上读到,如果没有su,logcat是无法执行的,但是有很多这样的代码……工作得很好
关于我可能做错了什么或可以尝试什么,还有其他想法吗?它被列为前10个坏权限,并在jellybean中关闭,谷歌的答案是: 丹·加尔平:读系统日志。现在,我有个坏消息要告诉你们。如果 您还没有看过我们的其他演示文稿,请阅读系统日志 实际上从J开始就消失了。您不再需要读取系统日志 可以得到。但是,允许您在未经许可的情况下 阅读您自己的应用程序的系统日志。因此,好消息并不令人毛骨悚然 通过打开用户的读取系统日志监视用户正在做什么 许可。同时你还可以找到有用的日志 如果崩溃录制和所有 我们在Google Play上的东西还不够
Ref:如果没有root,该权限在JB+上不起作用。看到设备上有root访问权限了吗?@Matthew谢谢。你能补充一下吗?在这一点上似乎是对的。哈,我试过了,但它说这是一个微不足道的答案,并自动将其转化为评论:)
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");
}