Chcę uzyskać wszystkie aplikacje, które pojawiają się na ekranie menu. Ale teraz otrzymuję tylko aplikacje zainstalowane przez użytkownika lub całą aplikację (w tym aplikację systemową).Jak uzyskać zainstalowane aplikacje w systemie Android i bez aplikacji systemowych?
Mój obecny kod jest:
final PackageManager pm = getActivity().getPackageManager();
List<PackageInfo> apps = pm.getInstalledPackages(PackageManager.GET_META_DATA);
ArrayList<PackageInfo> aux = new ArrayList<PackageInfo>();
for (int i = 0; i < apps.size(); i++) {
if (apps.get(i).versionName != null && ((apps.get(i).applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 1)) {
aux.add(apps.get(i));
}
Z tego kodu, można uzyskać aplikacje zainstalowane przez użytkownika, a jeśli ja skomentować „if” instrukcji, będę się aplikacje systemowe.
Chcę więc zainstalować zainstalowane aplikacje i aplikacje, takie jak kontakty, galeria itp.
UPDATE:
final PackageManager pm = getActivity().getPackageManager();
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> apps = pm.queryIntentActivities(intent, PackageManager.GET_META_DATA);
ale kontaktów jest aplikacja systemowa aplikacji, takich jak YouTube, Gmail, itp? Proszę wyjaśnić różnicę. Jakiej listy aplikacji chcesz? – Blundell
Chcę uzyskać listę wszystkich aplikacji wyświetlanych na ekranie menu. – beni
, ale kontakty pojawiają się na ekranie menu? tj. aplikacje systemowe. Może pomoże ci kolejne pytanie. Jakie konkretne aplikacje * nie * chcesz? – Blundell