Wie bekomme ich installierte Anwendungen in Android und keine System-Apps?

Ich möchte alle Anwendungen erhalten, die auf dem Menübildschirm angezeigt werden. Aber jetzt bekomme ich nur die vom Benutzer installierten Apps oder die gesamte Anwendung (inklusive der Systemanwendung).

Mein aktueller Code ist:

    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)); 
        }

Mit diesem Code kann ich die vom Benutzer installierten Apps herunterladen. Wenn ich die "if" -Anweisung kommentiere, werden die System-Apps angezeigt.

Daher möchte ich, dass der Benutzer Apps und Apps wie Kontakte, Galerie usw. installiert.

AKTUALISIEREN:

    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);

Antworten auf die Frage(4)

Ihre Antwort auf die Frage