androidandroid-package-managersinstalled-applications

How to get list of ALL apps (including System Apps)?


I am doing the following to get the list of apps and I am only getting apps that were installed but not ALL apps, including system apps.

I have tried the following:

    packageList1 = getPackageManager().getInstalledPackages(PackageManager.GET_META_DATA);

and this:

    packageList1 = getPackageManager().getInstalledPackages(0);

For both cases, I am getting the same list of apps that I have installed on the phone.


Solution

  • You are already getting a list of all installed applications including the system apps by calling this:

    List<ApplicationInfo> apps = getPackageManager().getInstalledPackages(0);
    

    Those with the flags:

    are system apps. You can check for the flags like this:

    List<ApplicationInfo> apps = getPackageManager().getInstalledApplications(0);
    for(ApplicationInfo app : apps) {
        if((app.flags & (ApplicationInfo.FLAG_UPDATED_SYSTEM_APP | ApplicationInfo.FLAG_SYSTEM)) > 0) {
            // It is a system app
        } else {
            // It is installed by the user
        }
    }