2

如何从 logcat 连续获取日志?

我想在自己的设备上阅读日志。该服务实际上是为了在另一个应用程序停止或卸载时发送短信。如果来自 logcat 的日志匹配字符串,如“Removing package com.package.name”,则会发送短信。

是否有一个函数可以调用一次以将日志连续发送到我的服务。如果没有,我正在考虑每秒运行下面的代码:

Process process = Runtime.getRuntime().exec("logcat logcat -b events");
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(process.getInputStream()));

StringBuilder log=new StringBuilder();
String line;
while ((line = bufferedReader.readLine()) != null) {
Toast.makeText(LogReaderService.this, line, Toast.LENGTH_LONG).show();
}

或者还有其他解决方法吗?

4

1 回答 1

0

我认为这是你能做到的唯一方法。

不要将其放入生产应用程序中,每秒执行该工作会耗尽设备上的电池。

另请注意,在您感兴趣的情况下,并不要求所有设备都发送相同的日志消息。很可能有一些设备的日志消息略有改变,甚至根本没有。因此,如果您打算涵盖各种设备,则需要对每一个设备进行测试,以确保它们确实为您提供了您正在寻找的日志输出。

于 2012-06-16T13:18:45.523 回答