[英]How display installed applications in android?
使用此代码:
final PackageManager pm = getActivity().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, "Launch Activity :" + pm.getLaunchIntentForPackage(packageInfo.packageName));
我可以在logcat软件包信息中显示等。但是,如果可能的话,我想在已安装应用程序的活动中显示一个列表,并带有其图标和应用程序名称。 可能吗? ps:我正在使用片段
观看此演示: Circle启动器
以下应该完成获取应用程序列表的工作
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
applications = mPackageManage.queryIntentActivities(intent, PackageManager.GET_META_DATA);
这样尝试
首先为PackageItem创建一个模型
public class PackageItem {
private Drawable icon;
private String name;
private String packageName;
public String getPackageName() {
return packageName;
}
public void setPackageName(String packageName) {
this.packageName = packageName;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Drawable getIcon() {
return icon;
}
public void setIcon(Drawable icon) {
this.icon = icon;
}
}
第2步)
这将为您提供所有安装应用程序的列表,以及应用程序名称,图标和软件包
public List<PackageItem> getInstalledApplication(){
PackageManager appInfo = getPackageManager();
List<ApplicationInfo> listInfo = appInfo.getInstalledApplications(0);
Collections.sort(listInfo, new ApplicationInfo.DisplayNameComparator(appInfo));
List<PackageItem> data = new ArrayList<PackageItem>();
for (int index = 0; index < listInfo.size(); index++) {
try {
ApplicationInfo content = listInfo.get(index);
if ((content.flags != ApplicationInfo.FLAG_SYSTEM) && content.enabled) {
if (content.icon != 0) {
PackageItem item = new PackageItem();
item.setName(getPackageManager().getApplicationLabel(content).toString());
item.setPackageName(content.packageName);
item.setIcon(getPackageManager().getDrawable(content.packageName, content.icon, content));
data.add(item);
}
}
} catch (Exception e) {
}
}
return data;
}
现在,您可以在适配器类中使用此列表 ,
希望这会帮助你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.