Android:持续获取日志

时间:2012-06-16 12:58:22

标签: java android process logcat

如何从logcat连续获取日志?

我想在自己的设备上阅读日志。此服务实际上是在停止或卸载另一个应用程序时发送短信。如果来自logcat的日志匹配字符串,如“正在删除包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();
}

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

1 个答案:

答案 0 :(得分:0)

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

请勿将其放入生产应用程序中,每隔一秒钟就会耗尽设备上的电池电量。

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