2016-07-15 15 views
6

Ich möchte Protokolle aus anderen Apps lesen und sie filtern, damit meine Anwendung eine bestimmte Aufgabe ausführt, wenn ein bestimmtes Stichwort protokolliert wird.Wie bekomme ich Logs von anderen Apps?

Ich fand mehrere Methoden zum Lesen von Protokollen, aber von meinen Tests konnte ich nur meine Anwendungsprotokolle erhalten.

Dies ist die Methode, die ich ursprünglich versucht

try { 
    Process process = Runtime.getRuntime().exec("logcat -d"); 
    BufferedReader bufferedReader = new BufferedReader(
    new InputStreamReader(process.getInputStream())); 

    StringBuilder log=new StringBuilder(); 
    String line = ""; 
    while ((line = bufferedReader.readLine()) != null) { 
    log.append(line); 
    } 
    TextView tv = (TextView)findViewById(R.id.textView1); 
    tv.setText(log.toString()); 
    } 
catch (IOException e) {} 

zu verwenden, aber es scheint, wie es nur die Protokolle meiner App liest.

Antwort

4

Sie können nur die Protokolle aller Apps lesen, wenn das Gerät gerootet ist.

Wenn Sie Protokolle von gerooteten Geräten lesen möchten, dann sollte this Ihnen helfen. Sie müssen jedoch auf 16 setzen.

+0

Haben Sie den Code dafür? Das ist, was ich suche. – Rosenpin

+0

Ich bin mir nicht sicher, ob Sie vollständig verstehen, was es bedeutet, ein Gerät zu rooten. Bitte lesen [this] (http://www.digitaltrends.com/mobile/how-to-root-android/). –

+0

Ich weiß sehr gut, was ein gerootetes Gerät ist .. Es ist kein Problem für mich, nur meine App root zu machen. Ich frage nur Ihren Code, um Systemprotokolle auf gerooteten Geräten zu lesen. – Rosenpin