我需要将所有已安装的应用程序图标存储在一个数组中,并将名称存储在另一个数组中,所以我有这段代码:
List<PackageInfo> apps = getPackageManager().getInstalledPackages(0);
int numberApps = apps.size();
String[] appsNames = new String[numberApps];
Drawable[] appsIcons = new Drawable[numberApps];
for(int i=0;i<apps.size();i++) {
PackageInfo p = apps.get(i);
String pname = p.packageName;
String appname = p.applicationInfo.loadLabel(getPackageManager()).toString();
appsNames[i] = appname;
Drawable appicon = p.applicationInfo.loadIcon(getPackageManager());
appsIcons[i] = appicon;
}
它有效,问题是显示所有应用程序,甚至是系统应用程序,所以现在我需要更改代码以获取用户安装或更新的应用程序。我一直在搜索,我找到了这个和这个,但是因为我使用的是 Drawable 和字符串数组,我无法改变它,我不知道如何让它工作。有人能帮助我吗??