2013-02-18 1 views
1

Я делаю приложение, которое должно показывать мне в журналах, какие приложения я запускаю на устройстве. Я использую logcat ActivityManager:I *:S, и это хорошо работает .. на некоторых устройствах и эмуляторах.Android, Logcat и BufferedReader - нет журналов

Но на некоторых устройствах он имеет странное поведение - все, что я вижу в журнале является повторение:

02-18 16:32:09.132: D/LockApp(4082): --------- beginning of /dev/log/main

фрагмент кода:

Process process = null; 
try { 
    process = Runtime.getRuntime().exec("logcat -c"); 
    process = null; 
    process = Runtime.getRuntime().exec("logcat ActivityManager:I *:S"); 
    br = new BufferedReader(new InputStreamReader(process.getInputStream())); 
    String line = null; 

    line = br.readLine(); 

    while(line != null && !this.isInterrupted()){ 
     Log.d(Tag, "Start LockApp loop"); 
     Log.d(Tag, line); 
    } 
} catch (IOException e) { 
    Log.d(Tag, e.toString()); 
} 

И я android.permission.READ_LOGS в манифесте

Я делаю это в Android 4.1 и 4.2

+0

Какое устройство вам не удалось? – StarPinkER

+0

Вы вызываете только вызов br.readLine() один раз. Буфер может быть заполнен, продолжайте его читать. – StarPinkER

+0

Он не работает в Asus Tf300 и u30gt-h – kemmotar

ответ

2

Что это такое logcat -c> Это очистит (очистит) весь журнал и выйдет.

Есть только V,D,I,W,E & WTF :-) Шесть тип категории LogCat

изменить его Runtime.getRuntime().exec("logcat -e"); Link here:

EDIT: Существует проблема чтения в боба желе link here

Разрешение READ_LOGS на Jelly Beans (Android 4.1) больше не будет предоставлено обычным приложениям.

Приложения могут читать только свои журналы.

Смотреть больше information

Вы могли бы попытаться реализовать функцию, чтобы предоставить себя READ_LOGS разрешения с для пользователей с корневыми устройствами.

+0

-c: очищает (сбрасывает) весь журнал и выходит – StarPinkER

+0

см. [Log filtering] (http://developer.android.com/tools/debugging/debugging-log.html) – StarPinkER

+0

@ padma-kumar, когда я комментирую logcat -c, он также не работает. И нет -e вариант. – kemmotar

Смежные вопросы