获得所有已安装应用的名字,包名,版本,图标的Android代码

jopen 11年前

getPackages()方法将返回所有数据:

class PInfo {      private String appname = "";      private String pname = "";      private String versionName = "";      private int versionCode = 0;      private Drawable icon;      private void prettyPrint() {          Log.v(appname + "\t" + pname + "\t" + versionName + "\t" + versionCode);      }  }    private ArrayList<PInfo> getPackages() {      ArrayList<PInfo> apps = getInstalledApps();      final int max = apps.size();      for (int i=0; i<max; i++) {          apps.get(i).prettyPrint();      }      return apps;  }    private ArrayList<PInfo> getInstalledApps() {      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 (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;   }