私はこのコードを使用してlogcat出力をsdcardに保存しています:-
public String ReadFromCMD(String[] strCmdArgs)
{
ProcessBuilder cmd;
String result="";
try
{
cmd = new ProcessBuilder(strCmdArgs);
Process process = cmd.start();
InputStream in = process.getInputStream();
BufferedReader reader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
int read;
char[] buffer = new char[4096];
StringBuffer output = new StringBuffer();
process.waitFor();
while ((read = reader.read(buffer)) > 0)
{
output.append(buffer, 0, read);
}
reader.close();
result = output.toString();
in.close();
} catch(Exception ex){ ex.printStackTrace(); }
return result;
}
ここで、ログをファイルに保存できます。
このコマンドで。
String[] args_Logs_Save = "/system/bin/logcat -v time -d -b radio -b events -b main -b system".split(" ");
ReadFromCMD(args_Logs_Save);
ここでの質問は次のとおりです:-ログの保存は私のアプリケーションパッケージのみであり、「I/WifiHW、W/ActivityManager、D/hwcomposer、D/wpa_supplicant」などのタグを含む完全な logcat 出力ではありません...
「/system/bin/logcat -v time -d -b radio -b events -b main -b system」を adb シェルから手動で実行すると、正常に実行され、すべての出力が得られます
しかし、コードの上から実行すると、パッケージのみの出力しか得られません。
では、上記のコードからすべての logcat を取得するにはどうすればよいでしょうか?
ノート:
Android 4.1 & 4.2 を使用しています
参照リンク : Link1、Link2、Link3、Link4
知っていれば、助けてください、ありがとう。