133

アプリケーション内のlogcatログを読み取って反応したい。

私は次のコードを見つけました:

try {
  Process process = Runtime.getRuntime().exec("logcat -d");
  BufferedReader bufferedReader = new BufferedReader(
  new InputStreamReader(process.getInputStream()));

  StringBuilder log=new StringBuilder();
  String line = "";
  while ((line = bufferedReader.readLine()) != null) {
    log.append(line);
  }
  TextView tv = (TextView)findViewById(R.id.textView1);
  tv.setText(log.toString());
  } 
catch (IOException e) {}

このコードは確かに、アプリケーションが開始されるまでに作成されたlogcatログを返します-

しかし、新しいlogcatログでさえ継続的に聞くことは可能ですか?

4

8 に答える 8

60

上記のコードで「-d」フラグを削除するだけで、ログを読み続けることができます。

「-d」フラグは、ログの内容を表示して終了するように logcat に指示します。フラグを削除すると、logcat は終了せず、追加された新しい行を送信し続けます。

正しく設計されていないと、アプリケーションがブロックされる可能性があることに注意してください。

幸運を。

于 2012-10-02T15:00:40.387 に答える
3

「-c」フラグはバッファをクリアします。

-c ログ全体をクリア (フラッシュ) して終了します。

于 2013-01-27T17:50:37.450 に答える