获取所有安装的应用

class PInfo {   
    private String appname = "";   
    private String pname = "";   
    private String versionName = "";   
    private int versionCode = 0;   
    private Drawable icon;   
    private void prettyPrint() {   
        log(appname + "\t" + pname + "\t" + versionName + "\t" + versionCode + "\t");   
    }   
}   
  
private void listPackages() {   
    ArrayList<PInfo> apps = getInstalledApps(false); /* false = no system packages */  
    final int max = apps.size();   
    for (int i=0; i<max; i++) {   
        apps.get(i).prettyPrint();   
    }   
}   
  
private ArrayList<PInfo> getInstalledApps(boolean getSysPackages) {   
    ArrayList<PInfo> res = new ArrayList<PInfo>();           
    List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);   
    for(int i=0;i<packs.size();i++) {   
        PackageInfo p = packs.get(i);   
        if ((!getSysPackages) && (p.versionName == null)) {   
            continue ;   
        }   
        PInfo newInfo = new PInfo();   
        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;    
}  

 

你可能感兴趣的:(安装)