2

エラー レポートとして、デバイス ログやアプリケーション ログを電子メール アカウントに送信したいと考えています。そのために、ビューにボタンを用意しました。どうすればログファイルを取得できますか?

ありがとう

4

2 に答える 2

3
            String separator = System.getProperty("line.separator");
            try {
                Process process = Runtime.getRuntime().exec("logcat -d");
                BufferedReader bufferedReader = new BufferedReader(
                        new InputStreamReader(process.getInputStream()));

                String line;
                while ((line = bufferedReader.readLine()) != null) {
                    log.append(line);
                    log.append(separator);
                }
            } catch (Exception e) {

            }
于 2013-01-10T20:29:20.743 に答える
2

これは、Ramesh (感謝) から改作された、わずかに改良されたバージョンです。主な違いは、独自のバッファリングを行うことです。これは速い。

  private void extractLogToFile()
  {
    // Make file name.
    String fullName = ...;

    // Extract to file.
    File file = new File (fullName);
    InputStreamReader reader = null;
    FileWriter writer = null;
    try
    {
      // get input stream
      String cmd = "logcat -d -v time";
      Process process = Runtime.getRuntime().exec(cmd);
      reader = new InputStreamReader (process.getInputStream());

      // write output stream
      writer = new FileWriter (file);
      char[] buffer = new char[10000];
      do 
      {
        int n = reader.read (buffer, 0, buffer.length);
        if (n == -1)
            break;
        writer.write (buffer, 0, n);
      } while (true);

      reader.close();
      writer.close();
    }
    catch (IOException e)
    {
      if (writer != null)
          try {
            writer.close();
        } catch (IOException e1) {
        }
      if (reader != null)
          try {
            reader.close();
        } catch (IOException e1) {
        }
      e.printStackTrace();
      return;
    }
  }
于 2013-11-08T00:27:29.007 に答える