我有一个服务,该服务想从服务启动时从logcat读取数据(即在服务启动之前丢弃logcat数据),实时监视logcat数据,过滤logcat以仅显示“ ActivityManager”的标签,并信息日志。
然后,我想根据过滤后的logcat数据执行某些操作。我尝试了以下操作,但不起作用:
Runtime.getRuntime().exec("logcat -c"); // flush the logcat first
Process process = Runtime.getRuntime().exec("logcat ActivityManager:I"); // filters logcat to only "ActivityManager:I" logs
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
StringBuilder log = new StringBuilder();
String line = "";
Log.d(TAG, "Reading filtered logcat");
while ((line = bufferedReader.readLine()) != null) {
log.append(line);
}
有谁知道我要去哪里错了?
最佳答案
好的,事实证明我错过了logcat中的-s参数,该参数过滤了logcat输出。