我有一个场景,我需要读取连续在logcat上以一秒为间隔发送的数据。所以,我已经调用这个类方法的线程,但我在例外像在我的android应用程序中获取Android日志
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;
}
}
如何获得相同的数据打印?
常用的日志我认为你应该使用'的logcat -d'否则该过程从未停止过 – Lino
试了一下,我得到java.io.IOException异常:错误运行EXEC()。命令:[logcat -d]工作目录:null环境:null –
是您的设备根源? – Lino