Zadałem podobne pytanie do tego na początku tego tygodnia, ale nadal nie rozumiem, jak uzyskać listę wszystkich zainstalowanych aplikacji, a następnie wybrać jedną do uruchomienia.
Próbowałem:
Intent intent = new Intent(ACTION_MAIN);
intent.addCategory(CATEGORY_LAUNCHER);
i pokazuje to tylko aplikacje, które są wstępnie zainstalowane lub mogą obsługiwać ACTION_MAIN
typ zamierzony.
Wiem też, że mogę użyć, PackageManager
aby uzyskać wszystkie zainstalowane aplikacje, ale jak mam to zrobić, aby uruchomić określoną aplikację?
android
android-intent
2 Prawda
źródło
źródło
Odpowiedzi:
Poniżej znajduje się kod, aby uzyskać listę działań / aplikacji zainstalowanych na Androidzie:
Otrzymasz wszystkie niezbędne dane
ResolveInfo
do uruchomienia aplikacji. Możesz sprawdzićResolveInfo
javadoc tutaj .źródło
Oto czystszy sposób korzystania z
PackageManager
Więcej informacji tutaj http://qtcstation.com/2011/02/how-to-launch-another-app-from-your-app/
źródło
Inny sposób filtrowania aplikacji systemowych (działa na przykładzie king9981):
źródło
Oto dobry przykład:
źródło
Pobieranie listy zainstalowanych aplikacji niesystemowych
źródło
Aby filtrować aplikacje oparte na systemie:
źródło
Aby pobrać wszystkie zainstalowane aplikacje, możesz użyć Menedżera pakietów.
Aby uruchomić, możesz użyć nazwy pakietu
Aby uzyskać więcej informacji, możesz przeczytać ten blog http://codebucket.co.in/android-get-list-of-all-installed-apps/
źródło
Listę zainstalowanych aplikacji można znaleźć na urządzeniu z Androidem, używając poniższego kodu „packageInfo” Zawiera informacje o zainstalowanej aplikacji w urządzeniu. możemy pobrać Intent dla aplikacji zainstalowanej z obiektu packageinfo i używając startactivity (intent), możemy uruchomić aplikację. od Ciebie zależy, jak zorganizujesz interfejs użytkownika w widoku listy lub widoku siatki. więc po zdarzeniu kliknięcia na podstawie pozycji można pobrać obiekt docelowy i rozpocząć cel działania.
źródło
Miałem obowiązek odfiltrować aplikacje systemowe, których użytkownik tak naprawdę nie używa (np. „Com.qualcomm.service”, „usługi aktualizacji” itp.). Ostatecznie dodałem kolejny warunek, aby odfiltrować listę aplikacji. Właśnie sprawdziłem, czy aplikacja ma „cel uruchamiania”.
Tak więc wynikowy kod wygląda jak ...
źródło
Jeśli w jednym pakiecie znajduje się wiele programów uruchamiających, kod ma problem. Np .: na LG Optimus Facebook dla LG, MySpace dla LG, Twitter dla LG zawiera w jednym pakiecie nazwę SNS i jeśli użyjesz powyższego SNS, to się powtórzy. Po wielu godzinach badań przyszedłem z poniższym kodem. Wydaje się działać dobrze.
źródło
@Jas: Nie mam już tego kodu, ale znalazłem coś blisko. Zrobiłem to, aby wyszukać „komponenty” mojej aplikacji, są to tylko czynności z określoną kategorią.
Skomentowałem część, od której pochodzi nazwa działania, ale jest to dość proste.
źródło
Czyste rozwiązanie, które skutecznie odfiltrowuje aplikacje systemowe
Ideą tego rozwiązania jest to, że główna aktywność każdej aplikacji systemowej nie ma niestandardowej ikony aktywności . Ta metoda daje mi doskonały wynik:
źródło
źródło
Mam inne rozwiązanie:
źródło
Pobierz wszystkie aplikacje:
Sprawdź, czy zainstalowana aplikacja, a następnie otwórz:
źródło
możesz użyć tego:
źródło
źródło