我正在制作一个应用程序,它必须在日志中向我显示我在设备上启动的应用程序。我使用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
中这样做答案 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权限的功能。