我需要在我的应用程序和其他应用程序中读取和过滤logcat日志。如果Read logcat programmatically within application,我发现了其他问题和最有用的问题。
所以我尝试编写我的代码,但结果总是一样的,即返回在应用程序启动之前所做的logcat日志。
public void getLog() {
edLog.setText("");
Log.e("imgspa", "ciao");
try {
//Process logcat = Runtime.getRuntime().exec(new String[]{"logcat", "-d", "*:I"});
//Process logcat = Runtime.getRuntime().exec(new String[]{"logcat", "-d", "B4A:I"});
//Process logcat = Runtime.getRuntime().exec(new String[]{"logcat", "-d", "-v", "time", "-e", "*VFY*"});
//Process logcat = Runtime.getRuntime().exec(new String[]{"logcat", "-d", "-v", "time", "*:I"});
//Process logcat = Runtime.getRuntime().exec(new String[]{"logcat", "-d"});
Process logcat = Runtime.getRuntime().exec(new String[]{"logcat", "-d", "-v", "threadtime", "*:*"});
BufferedReader br = new BufferedReader(new InputStreamReader(logcat.getInputStream()));
String line;
final StringBuilder sb = new StringBuilder();
String separator = System.getProperty("line.separator");
sb.append("inizio");
sb.append(separator);
while ((line = br.readLine()) != null) {
sb.append(line);
sb.append(separator);
}
sb.append("fine");
edLog.setText(sb.toString());
} catch (IOException e) {
e.printStackTrace();
}
}
正如您所看到的,我尝试了不同的解决方案,但没有人可以帮助我。 我需要获取logcat,其中应用程序名称为“B4A”。
我要指出: - 我有一个root设备 - 我已经添加了READ_LOGS权限
答案 0 :(得分:1)
自Android 4.1起,它无法读取其他应用程序的日志。 查看explanation
对于有根设备,您需要手动获取READ_LOGS
权限
String pname = getPackageName();
String[] CMDLINE = { "su", "-c", null };
if(getPackageManager().checkPermission(android.Manifest.permission.READ_LOGS, pname) != 0) {
try {
CMDLINE[2] = String.format("pm grant %s android.permission.READ_LOGS", pname);
java.lang.Process p = Runtime.getRuntime().exec(CMDLINE);
int res = p.waitFor();
Log.d(TAG, "exec returned: " + res);
if (res != 0)
throw new Exception("failed to become root");
} catch (Exception e) {
Log.d(TAG, "exec(): " + e);
}
}
或者只是尝试使用.exec("su -c logcat -d")
答案 1 :(得分:1)
从JellyBean开始,您无法访问您的应用程序未添加的logcat日志。 link
答案 2 :(得分:0)
更改是第三方应用程序无法再获取读取日志权限,但是每个应用程序都可以读取仅包含已写入行的日志,而无需任何权限。
除非你扎根,否则你不能这样做,因为果冻豆。请参阅此Android bug report以及此相关讨论。引用:
img.simone如需更多查询,请阅读this
希望它能帮到你!!