Android,Logcat和BufferedReader - 没有日志

时间:2013-02-18 08:55:38

标签: java android logging logcat

我正在制作一个应用程序,它必须在日志中向我显示我在设备上启动的应用程序。我使用logcat ActivityManager:I *:S并在一些设备和模拟器上做得很好。

但是在某些设备上它有奇怪的行为 - 我在日志中看到的一切都是重复:

02-18 16:32:09.132: D/LockApp(4082): --------- beginning of /dev/log/main

代码段:

Process process = null;
try {
    process = Runtime.getRuntime().exec("logcat -c");
    process = null;
    process = Runtime.getRuntime().exec("logcat ActivityManager:I *:S");
    br = new BufferedReader(new InputStreamReader(process.getInputStream()));
    String line = null;

    line = br.readLine();

    while( line != null && !this.isInterrupted()){
        Log.d(Tag, "Start LockApp loop");
        Log.d(Tag, line);
    }
} catch (IOException e) {
    Log.d(Tag, e.toString());
}

我在Manifest中有android.permission.READ_LOGS

我在Android 4.1和4.2

中这样做

1 个答案:

答案 0 :(得分:2)

这是什么logcat -c>这将清除(刷新)整个日志并退出。

只有V,D,I,W,E & WTF :-)六种logcat类别

将其更改为Runtime.getRuntime().exec("logcat -e"); Link here:

修改 阅读果冻豆有一个问题 link here

Jelly Beans(Android 4.1)的READ_LOGS权限将不再授予普通应用。

应用只允许阅读自己的日志。

查看更多information

您可以尝试为具有root设备的用户实施一项授予自己READ_LOGS权限的功能。