2017-04-27 3 views
0

Est-il possible de lire les messages LogCat pour tous les processus? (Comme en studio android quand nous choisissons « Pas de filtre » option)Android LogCat par programme - tous les processus

Quand j'exécute ceci:

File filename = new File(Environment.getExternalStorageDirectory() + "/mylog.txt"); 
    if (filename.exists()) { 
     filename.delete(); 
    } 

    String cmd = "logcat -f " + filename.getAbsolutePath(); 
    Runtime.getRuntime().exec(cmd); 

il écrit que les journaux connectés à mon application. Depuis android version 4.1+, vous ne pouvez plus lire le logcat d'une autre application.

Répondre

0

Voir this pour référence.

Pour lire les journaux d'autres applications pour la version inférieure à 4,1

Runtime.getRuntime().exec("logcat -c").waitFor(); 
Process process = Runtime.getRuntime().exec("logcat -v long *:*"); 
BufferedReader reader = 
new BufferedReader(new InputStreamReader(process.getInputStream())); 
while (true) { 
    String nextLine = reader.readLine(); 
    if (!nextLine.contains("LogWatcher-D")) { 
     Log.w("LogWatcher-D", "See: " + nextLine); 
    } 
} 

Vous devez donner la permission <uses-permission android:name="android.permission.READ_LOGS" />.

Reference

Pour obtenir une idée claire, vous pouvez vous référer this