2017-04-27 209 views
0

是否可以讀取所有進程的LogCat消息? (如在Android Studio中,當我們選擇「無過濾」選項)通過編程的Android LogCat - 所有進程

當我執行此:

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

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

只寫連接到我的應用程序日誌。

回答

0

從Android 4.1+版本開始,你無法再讀取其他應用程序的logcat。請參閱this以供參考。

要讀取其他應用程序的日誌版本低於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); 
    } 
} 

你需要給<uses-permission android:name="android.permission.READ_LOGS" />許可。

Reference

爲了得到明確的想法,你可以參考this