我正在使用此代码将 logcat 输出保存到 sdcard:-
public String ReadFromCMD(String[] strCmdArgs)
{
ProcessBuilder cmd;
String result="";
try
{
cmd = new ProcessBuilder(strCmdArgs);
Process process = cmd.start();
InputStream in = process.getInputStream();
BufferedReader reader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
int read;
char[] buffer = new char[4096];
StringBuffer output = new StringBuffer();
process.waitFor();
while ((read = reader.read(buffer)) > 0)
{
output.append(buffer, 0, read);
}
reader.close();
result = output.toString();
in.close();
} catch(Exception ex){ ex.printStackTrace(); }
return result;
}
在这里我可以将日志保存到文件中。
用这个命令。
String[] args_Logs_Save = "/system/bin/logcat -v time -d -b radio -b events -b main -b system".split(" ");
ReadFromCMD(args_Logs_Save);
这里的问题是:- 日志保存仅适用于我的应用程序包,而不是带有“I/WifiHW、W/ActivityManager、D/hwcomposer、D/wpa_supplicant”等标签的完整 logcat 输出...
当我从 adb shell 手动执行“/system/bin/logcat -v time -d -b radio -b events -b main -b system”时,它将成功执行并给我所有输出
但是当我从上面的代码执行时,它只会为我的包提供输出。
那么现在如何从我上面的代码中获取所有 logcat 呢?
笔记:
我正在使用 Android 4.1 和 4.2
如果你知道然后请帮助,谢谢。