2011-06-29 19 views
0

私のJavaコードで "adb logcat -d time> pathoffile \ log.txt &"を実行します。"adb logcat -d time> pathoffile log.txt&"をプログラムで実行するには

自分のデバイスにlog.txtを作成したいとします。

私はこれを行うためにこのコードを書いています。

ArrayList<String> commandLine = new ArrayList<String>(); 
     commandLine.add("logcat"); 
     commandLine.add("-d"); 
     commandLine.add("time"); 
     commandLine.add(">"); 
     commandLine.add(getApplicationContext().getFilesDir() 
     //  + "/log.txt"); //already created the file at specified location. 
     //commandLine.add("&"); 
Process process = Runtime.getRuntime().exec(commandLine.toArray(new String[0])); 

上記のコードの任意のエラーを投げていないが、私のファイル(log.txtという)は、ログ・ステートメントを更新していない。..

PL、これを行う方法を、この中で私を助けてください。これを行うための選択肢があればお勧めします.. ありがとうございます。

adb logcat -d time -f /mnt/sdcard/log.txt 

>は、シェルのIOリダイレクション機能であること:

+0

ファイルをどのように作成しましたか?おそらくそれは許可問題ですか? – Mark

+0

ファイルlogf = new File(getApplicationContext()。getFilesDir() \t \t \t \t \t + "/log.txt"); \t \t \t logf.createNewFile();そのファイルディレクトリに移動してlog.txtファイルを見ることができます。だから私はその許可問題ではないと思う。 IO例外をスローする場合。 – brig

答えて

4

ではなく-fオプションを試してみてください。 exec()機能で使用しても効果はありません。

+0

ありがとうinazaruk、その作業中、マニフェストファイルにもREAD_LOGS権限を追加する必要があります。 – brig