查询手机所有安装应用的信息

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;
    }

  

posted @ 2014-12-02 09:27  寡蛋  阅读(229)  评论(0)    收藏  举报