我有一个场景,在这个场景中,我需要以1秒的间隔读取logcat上不断出现的数据。因此,我创建了一个线程来调用这个类方法,但最终出现了如下异常
Working Directory: null Environment: null
我已经添加了如下权限
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
代码是
public class LogsUtil {
public static StringBuilder readLogs() {
StringBuilder logBuilder = new StringBuilder();
try {
String[] cmd = new String[] { "logcat | find \\ Keymaster" /*"logcat", "-v", "time", "ActivityManager:W", "Keymaster:D"*/ };
//Process processClear = new ProcessBuilder().command("logcat -c").redirectErrorStream(true).start();
//String cmd[] = new String[]{"logcat"};
Process process = Runtime.getRuntime().exec(/*"logcat -d"*/cmd);
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
String line;
while ((line = bufferedReader.readLine()) != null) {
Log.e(" ", ""+bufferedReader.readLine());
logBuilder.append(line + "\n");
}
}
catch (IOException e)
{
e.printStackTrace();
}
return logBuilder;
}
}
需要读取的确切日志是
如何打印相同的数据?
1条答案
按热度按时间8mmmxcuj1#
你可以用
但是,如果您需要自己的日志,我建议您只使用自己的日志
作为
<uses-permission android:name="android.permission.READ_LOGS" />
对我来说太无礼了。您可以使用木材使用特定的本地记录器为您的需要。或常见的记录器与可视化形式的谷歌例子