アプリケーション内でプログラム的にlogcatを読み取る 質問する

アプリケーション内でプログラム的にlogcatを読み取る 質問する

アプリケーション内で 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 ログを継続的にリッスンすることは可能ですか?

ベストアンサー1

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

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

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

幸運を。

おすすめ記事