Przeszukałem stackoverflow na to pytanie i stwierdziliśmy: Android, Detect when other apps are launched i Reliable way to detect application launch from home/desktop?, jakiego rodzaju odpowiedzi na moje pytanie, ale to jeszcze nie wystarczy.Wykrywanie android Aktywny uruchamia
Co chcę zrobić Chcę utworzyć widget/app, który pokazuje użytkownikowi urządzenia listę ostatnich aplikacji oraz lista najczęściej używanych aplikacji.
Problem W jaki sposób mogę uzyskać dokładne dane o aplikacjach, aby utworzyć listę najczęściej używanych aplikacji.
Informacje podstawowe
- Mam kompilacji mój własny system operacyjny Android (4.2 based) kod, więc mam dostęp do wszystkiego.
- Rozwijam także program uruchamiający.
- Musi przejść przez CTS i być zatwierdzonym przez Google.
- Mogę utworzyć aplikację z uprawnieniami systemowymi.
- Wiem, że może to być problem z bezpieczeństwem dla Google.
Niektóre rozwiązania
niedawnej aplikacji można znaleźć poprzez ActityManager, metody getRecentApps, więc teraz problemu tam.
Szukałem w internecie na ten i już znaleźć następujące rozwiązania:
- Użyj usługi kwerendy activityManager, metodę getRunningTasks co X sekund i zbudować listę (Niewłaściwe informacje, również przy użyciu dużo batery).
- Użyj logcat aby uzyskać te informacje (wydaje się hack do mnie, potrzebuje uprawnień systemowych)
- Zmiana sama w celu uzyskania tych informacji (najprawdopodobniej nie testów CTS)
- Użyj wyrzutni activityManager aby zweryfikować aplikacje, które zostały uruchomione (pomija aplikacje uruchomione w innych aplikacjach)
Coś jeszcze przegapiłem?
Dzięki z góry Tiago Costa
wy dość bardzo przygwoździł to z listą wszystkich 4 opcji. Mój preferowany używa '(ActivityManager) this.getSystemService (ACTIVITY_SERVICE);' – srf
Dziękuję za odpowiedź, mam zamiar wypróbować je wszystkie i zobaczyć, który z nich działa najlepiej. Dzięki jeszcze raz. –
logcat nie działa z systemem Android 4.2 i późniejsze, chyba że masz uprawnienia root'a, zobacz https://groups.google.com/forum/?fromgroups=#!topic/android-developers/6U4A5irWang – mattlaabs