查询手机所有安装应用的信息
import android.graphics.drawable.Drawable; /** * Model类 ,用来存储应用程序信息 * * @author wushan * */ public class AppInfo { private String appLabel; //应用程序标签 private Drawable appIcon; //应用程序图像 private String pkgName = ""; //应用程序所对应的包名 private String versionCode = ""; //应用程序所对应的版本号 private String versionName = ""; //应用程序所对应的版本信息 public AppInfo(){} public String getAppLabel() { return appLabel; } public void setAppLabel(String appName) { this.appLabel = appName; } public Drawable getAppIcon() { return appIcon; } public void setAppIcon(Drawable appIcon) { this.appIcon = appIcon; } public String getPkgName(){ return pkgName ; } public void setPkgName(String pkgName){ this.pkgName=pkgName ; } public String getVersionCode() { return versionCode; } public void setVersionCode(String versionCode) { this.versionCode = versionCode; } public String getVersionName() { return versionName; } public void setVersionName(String versionName) { this.versionName = versionName; } }
/** * 获取手机中所有app的信息(包名、标签 、图像 、 启动应用程序的Intent) * @param context */ public static ArrayList<AppInfo> queryAppInfo(Context context) { PackageManager pm = context.getPackageManager(); // 获得PackageManager对象 List<PackageInfo> packs = pm.getInstalledPackages(0); ArrayList<AppInfo> mlistAppInfo = new ArrayList<AppInfo>(); for (PackageInfo reInfo : packs) { AppInfo appInfo = new AppInfo(); appInfo.setAppLabel(reInfo.applicationInfo.loadLabel(pm).toString()); appInfo.setPkgName(reInfo.packageName); appInfo.setAppIcon(reInfo.applicationInfo.loadIcon(pm)); appInfo.setVersionCode(reInfo.versionCode + ""); appInfo.setVersionName(reInfo.versionName); mlistAppInfo.add(appInfo); // 添加至列表中 } return mlistAppInfo; } /** * 判断该报名所对应的应用程序在手机中是否存在 * @param packageName */ public static boolean isHaveApp(String packageName, Context context) { ArrayList<AppInfo> mlistAppInfo = queryAppInfo(context); // TODO Auto-generated method stub if(mlistAppInfo.size() == 0){ return false; } for (int i = 0; i < mlistAppInfo.size(); i++) { if(packageName.equals(mlistAppInfo.get(i).getPkgName())){ return true; } } return false; }