2

logcat から継続的にログを取得するには?

自分のデバイスでログを読みたい。このサービスは実際には、別のアプリケーションが停止またはアンインストールされたときに SMS を送信することを目的としています。logcat からのログが「Removing package com.package.name」のような文字列と一致した場合、SMS が送信されます。

ログをサービスに継続的に送信するために一度呼び出すことができる関数はありますか。何もない場合は、毎秒以下のコードを実行することを考えています:

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 に答える