是否可以读取所有进程的LogCat消息? (比如在android studio中我们选择'No Filter'选项)
执行此操作时:
File filename = new File(Environment.getExternalStorageDirectory() + "/mylog.txt");
if (filename.exists()) {
filename.delete();
}
String cmd = "logcat -f " + filename.getAbsolutePath();
Runtime.getRuntime().exec(cmd);
它只会写连接到我的应用程序的日志。
答案 0 :(得分:0)
从Android版本4.1+开始,您无法读取其他应用程序的logcat。请参阅this以供参考。
读取低于4.1的其他应用程序的日志
Runtime.getRuntime().exec("logcat -c").waitFor();
Process process = Runtime.getRuntime().exec("logcat -v long *:*");
BufferedReader reader =
new BufferedReader(new InputStreamReader(process.getInputStream()));
while (true) {
String nextLine = reader.readLine();
if (!nextLine.contains("LogWatcher-D")) {
Log.w("LogWatcher-D", "See: " + nextLine);
}
}
您需要授予<uses-permission android:name="android.permission.READ_LOGS" />
权限。
为了清楚明白,您可以参考this