0

In android,how can I get a list of the app names(not package names) of all my installed non-system apps along with their app icons

penecay
  • 7
  • 1
  • 4

1 Answers1

0

This method helps you to get all installed apps detail from your device like name, package name, icon, version etc..

private ArrayList<PackageAppInfo> getInstalledApps() {
    ArrayList<PackageAppInfo> res = new ArrayList<>();
    List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);

    for (int i = 0; i < packs.size(); i++) {
        PackageInfo p = packs.get(i);

        if ((p.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {
            if (p.packageName.equals(MyOwnApplication.getInstance().getPackageName())) {
                continue;
            }

            PackageAppInfo newInfo = new PackageAppInfo();
            newInfo.appname = p.applicationInfo.loadLabel(getPackageManager()).toString();
            newInfo.pname = p.packageName;
            newInfo.versionName = p.versionName;
            newInfo.versionCode = p.versionCode;

            ApplicationInfo applicationInfo;
            long size;
            try {
                applicationInfo = getPackageManager().getApplicationInfo(p.packageName, PackageManager.GET_META_DATA);
                File file = new File(applicationInfo.publicSourceDir);
                size = file.length();
            } catch (PackageManager.NameNotFoundException e) {
                e.printStackTrace();
                size = 0;
            }

            newInfo.size = size;
            newInfo.icon = p.applicationInfo.loadIcon(getPackageManager());
            res.add(newInfo);
        } else {
            String appName = p.applicationInfo.loadLabel(getPackageManager()).toString();
        }

    }
    return res;
}

PackageAppInfo.java

public class PackageAppInfo {
   public String appname = "";
   public String pname = "";
   public String versionName = "";
   public int versionCode = 0;
   public int permissions = 0;
   public Drawable icon;
   public long size;
}}
Pratik Fagadiya
  • 1,195
  • 7
  • 21