2016-07-15 9 views
6

다른 앱의 로그를 읽고 필터링하여 특정 키워드가 기록 될 때 내 애플리케이션이 특정 작업을 수행하도록하고 싶습니다.다른 앱의 로그를 얻는 방법?

로그를 읽는 몇 가지 방법이 있지만 내 테스트에서 응용 프로그램 로그 만 얻을 수있었습니다.

내가 원래

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) {} 

를 사용하려고하는 방법입니다 그러나 그것은 단지 내 응용 프로그램의 로그를 읽는 것처럼 보인다.

답변

4

기기가 루팅 된 경우에만 모든 앱의 로그를 읽을 수 있습니다.

루트 장치의 로그를 읽으려면 this이 도움이 될 것입니다. 그러나 targetSdk을 16으로 설정해야합니다.

+0

코드가 있습니까? 이것이 내가 원하는 것입니다. – Rosenpin

+0

장치를 루트하는 것이 무엇을 의미하는지 완전히 이해할 수 있을지 확신 할 수 없습니다. [this] (http://www.digitaltrends.com/mobile/how-to-root-android/)를 읽으십시오. –

+0

뿌리깊은 장치가 무엇인지 잘 압니다. 내 응용 프로그램 루트 만 만들면 문제가되지 않습니다. 나는 뿌리깊은 장치에 시스템 로그를 읽도록 코드를 요청하고 있습니다. – Rosenpin