Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法打开日志设备'/dev/log/main';:拒绝许可_Java_Android_Logging_Logcat_Processbuilder - Fatal编程技术网

Java 无法打开日志设备'/dev/log/main';:拒绝许可

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是无法执行的,但是有很多这样的代码……工作得很好 关于我可能做错了什么或可以尝试什么,还有其他想法吗?它被列

我见过其他解决方案,但似乎都不适用

我试图从一个执行“logcat-d”的进程中读取数据,我收到了标题中的错误

My AndroidManifest.xml包括:

<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");
            }