質問

ADBで使用できるBugreportオプションが必要です。アプリのSDのファイルに移動します。 Android;EXEC( "BUGREPORT")は、通常のシェルでBugreportを実行できず、DumpState、DumpSys、およびLogCatを別々に実行して同じ結果を得るために必要なものを説明します。それは元気であり、私はそれを理解していますが、dumpstateやdumpsysがファイルに書き込むことはできません。以下はlogcat -d -fを使用してlogcatを書くことに問題がありますが、他の2つの場合は機能しません。dumpstate -f、dumpstate -d -f、およびdumpstate>を作動させるには、それでもファイルに何も書き込まない。この仕事をするために行方不明の何かがありますか?
これがSD 上のファイルを作成している場所です。

File folder = new File(Environment.getExternalStorageDirectory()+"/IssueReport/");
    if (folder.isDirectory() == false) {
        folder.mkdir();
    }
    log = new File(Environment.getExternalStorageDirectory()+"/IssueReport/log.txt");
.

そしてここでは私がその場所にファイルを書き込んでいる場所です

private void submit() {
    try {
       log.createNewFile(); 
       String cmd = "dumpstate "+log.getAbsolutePath();
       Runtime.getRuntime().exec(cmd);
    } catch (IOException e) {
    e.printStackTrace();
    }
.

役に立ちましたか?

解決

私はそれを作業しました。 AndroidのJavaコードを実行していますか?それを必要としているように機能するように修正しました。

private void submit() {
    try {
         String[] commands = {"dumpstate > /sdcard/log1.txt"};
         Process p = Runtime.getRuntime().exec("/system/bin/sh -");
         DataOutputStream os = new DataOutputStream(p.getOutputStream());
            for (String tmpCmd : commands) {
                os.writeBytes(tmpCmd+"\n");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
.

誰かが必要な場合は、ここに私がすべてを走っている方法です。アプリは、読み取りからバグレポートを添付する必要があります。Shellコマンドの実行AndroidのJavaコードを実行しますか?、私はバグレポートを実行する方法がないことを見ました。私は各レポートを別々に生成してから、それらをすべて1つのファイルに組み合わせて電子メールに添付しています。

private void submit() {
    try {
         String[] commands = {"dumpstate > /sdcard/IssueReport/dumpstate.txt", 
                              "dumpsys > /sdcard/IssueReport/dumpsys.txt",
                              "logcat -d > /sdcard/IssueReport/log.txt",
                              "cat /sdcard/IssueReport/dumpstate.txt /sdcard/IssueReport/dumpsys.txt /sdcard/IssueReport/log.txt > /sdcard/IssueReport/bugreport.rtf" };
         Process p = Runtime.getRuntime().exec("/system/bin/sh -");
         DataOutputStream os = new DataOutputStream(p.getOutputStream());
            for (String tmpCmd : commands) {
                    os.writeBytes(tmpCmd+"\n");
            }
        } catch (IOException e) {
            e.printStackTrace();    
        }
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top