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
CodePudding user response:
below this website This project is kotlin.
CodePudding user response:
To get the data related to installed apps use package manager.
final PackageManager pm = getPackageManager();
//get a list of installed apps.
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
for (ApplicationInfo packageInfo : packages) {
Log.d(TAG, "Installed package :" packageInfo.packageName);
Log.d(TAG, "Source dir : " packageInfo.sourceDir);
Log.d(TAG, "Launch Activity :" pm.getLaunchIntentForPackage(packageInfo.packageName));
}
For more details follow this StackOverflow answer
CodePudding user response:
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;
}}