2011-07-27 1 views
0

私は、次のコードを使用してAndroidアプリケーションからメインログを抽出することができました:私は、イベントログを抽出するために、同じ方法を使用しようとすると、それは動作しません、しかしAndroidアプリケーションからイベントログを取り出す方法は?

String[] LOGCAT_CMD = new String[] { 
    "logcat", 
    "-d", 
    "MyApplication:E", 
    "*:S"}; 
    Process logcatProc = null; 

    try { 
     logcatProc = Runtime.getRuntime().exec(LOGCAT_CMD); 
    } catch (IOException e) { 
     e.printStackTrace(); 
     return ""; 
    } 
String lineSeparator = System.getProperty("line.separator"); 

    StringBuilder strOutput = new StringBuilder(); 
    try { 
     InputStream ireader = logcatProc.getInputStream(); 
     int temp; 
     while ((temp = ireader.read()) != -1){ 
      while (temp != 64){ 
       strOutput.append((char) temp); 
       temp = ireader.read(); 
      } 
      strOutput.append(lineSeparator); 
      line = strOutput.toString(); 
      writeLine(line); 
      strOutput = new StringBuilder(); 
     } 

を。問題が何であるか分かりませんが、LOGCAT_CMDを次のように変更してアプリケーションを実行すると、ireader.read()は直ちに-1を返して終了します。

String[] LOGCAT_CMD = new String[] { 
      "logcat", 
      "-b", 
      "events", 
      "-d", 
      "[1]:I", 
      "*:S" 
      }; 

誰かが私を助けてくれますか?

答えて

1

チェックアウトthis code特にSendLogActivity.javaのcollectAndSendLog()を見てください。

+0

私はこれが私の必要と考えるものではありません。 LOGCAT_CMDを "logcat -b main -d"に設定するとうまくいきます。しかし、 "logcat -b events -d"または "logcat -b radio -d"を試すと、InputStream ireaderは直ちに-1を返して終了します。 – Help

関連する問題