1

デバイスで起動したアプリケーションをログに表示する必要があるアプリケーションを作成しています。私は使用logcat ActivityManager:I *:Sしており、これをうまくやっています..いくつかのデバイスとエミュレーターで。

しかし、一部のデバイスでは奇妙な動作をします-ログに表示されるものはすべて次の繰り返しです:

02-18 16:32:09.132: D/LockApp(4082): --------- beginning of /dev/log/main

コードスニペット:

Process process = null;
try {
    process = Runtime.getRuntime().exec("logcat -c");
    process = null;
    process = Runtime.getRuntime().exec("logcat ActivityManager:I *:S");
    br = new BufferedReader(new InputStreamReader(process.getInputStream()));
    String line = null;

    line = br.readLine();

    while( line != null && !this.isInterrupted()){
        Log.d(Tag, "Start LockApp loop");
        Log.d(Tag, line);
    }
} catch (IOException e) {
    Log.d(Tag, e.toString());
}

そして、私はandroid.permission.READ_LOGSマニフェストにいます

私はAndroid 4.1と4.2でそれをやっています

4

1 に答える 1

2

これは何ですかlogcat -c> ログ全体をクリア (フラッシュ) して終了します。

あるのはV,D,I,W,E & WTF:-) 6 種類の logcat カテゴリだけです

リンクをここに変更します。Runtime.getRuntime().exec("logcat -e");

編集:ここのジェリービーンリンク の読み取りに問題があり ます

Jelly Beans (Android 4.1) の READ_LOGS 権限は、通常のアプリには付与されなくなりました。

アプリは、独自のログの読み取りのみを許可されます。

詳細については、 を参照してください

ルート化されたデバイスを持つユーザーに対して、自分自身に READ_LOGS 権限を付与する関数を実装してみることができます。

于 2013-02-18T09:06:02.687 に答える