2013-03-28 1 views
1

Я реализую функциональность для чтения журналов устройств в своем приложении.Программно фильтровать журналы устройств

Для этого я принял помощь от Reading logs programatically. Этот фрагмент кода предоставляет журналы устройств (журналы всех запущенных процессов). Это прекрасно и работает.

Теперь я хочу отфильтровать журнал приложений из журнала устройств. Так как я могу сделать это прогараматически?

ответ

1

Вы проверили ссылку на logcat? http://developer.android.com/tools/debugging/debugging-log.html#alternativeBuffers и http://developer.android.com/tools/help/logcat.html

Вы можете попробовать

public class LogTest extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    try { 
     Process process = Runtime.getRuntime().exec("logcat -b main -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) { 
    } 
    } 
} 

Все, что вам нужно сделать, это указать вашу команду. Вы можете проверить свою команду, запустив ее в adb. Чтобы отфильтровать его, смотрите также http://developer.android.com/tools/debugging/debugging-log.html#filteringOutput

+1

не могли бы вы объяснить 'logcat -b main -d' объяснить? что такое -b и main? –

+1

main - обычные журналы приложений. С уровня приложения. Системные журналы и журналы ядра не включены в это –

0

1) Чтение журналов программно не работает из сэндвича с мороженым.

2) Используйте PackageManager, чтобы получить менеджер пакетов, чтобы получить имена пакетов установленных приложений.

3) Используйте ActivityManager, чтобы получить список запущенных процессов.

Сопоставьте имена пакетов приложений с запущенными процессами и найдите идентификатор процесса. И фильтровать журналы, которые относятся к целевому приложению по имени пакета или идентификатору процесса.

Это просто большая фотография.

+0

Есть ли какая-либо документация для чтения устаревания журнала из ICS? Пожалуйста, поделитесь –

+0

Извините, нет. Это невозможно сделать из-за ограничений безопасности. –