一。通过程序包名获取PackageInfo 信息
Drawable icon = null;//图片
String appName=null;//程序名称
PackageManager manager = this.getPackageManager();
try {
PackageInfo info = manager.getPackageInfo(this.getPackageName(), 0);//this.getPackageName()这个是程序包名
String packageName = info.packageName;
int versionCode = info.versionCode;
String versionName = info.versionName;
appName=info.applicationInfo.loadLabel(getPackageManager()).toString();
System.out.println("packageName="+packageName+"versionCode="+versionCode+"versionName="+versionName);
icon=info.applicationInfo.loadIcon(getPackageManager());
} catch (NameNotFoundException e) {
// TODO Auto-generated catch block
}
二。通过for循环,获取所有程序信息
List < PackageInfo > packs = getPackageManager().getInstalledPackages(0);
for(int i=0;i < packs.size();i++) {
PackageInfo p = packs.get(i);
PInfo newInfo = new PInfo();//new一个对象
newInfo.appname = p.applicationInfo.loadLabel(getPackageManager()).toString();
newInfo.pname = p.packageName;
newInfo.versionName = p.versionName;
newInfo.versionCode = p.versionCode;
newInfo.icon = p.applicationInfo.loadIcon(getPackageManager());
res.add(newInfo);
}
return res;
}