现在的位置: 首页 > 综合 > 正文

获取系统内Applications的基本信息

2013年07月15日 ⁄ 综合 ⁄ 共 3318字 ⁄ 字号 评论关闭

获取系统内Applications的基本信息

文章分类:移动开发

在这个例子中将展示如何获取Application的几个基本属性信息:名字、Package标签、版本信息和图标信息。
创建一个用于存储基本信息的Class:

Java代码 复制代码
  1. class PInfo {     
  2.   
  3.   
  4.      private String appname = "";     
  5.   
  6.      private String pname = "";     
  7.   
  8.      private String versionName = "";     
  9.   
  10.      private int versionCode = 0;     
  11.   
  12.      private Drawable icon;     
  13.   
  14.      private void prettyPrint() {     
  15.   
  16.          log(appname + "t" + pname + "t" + versionName + "t" + versionCode + "t");     
  17.   
  18.      }     
  19.   
  20.  }   

 

接下来是获取信息的主体:

Java代码 复制代码
  1. private ArrayList < PInfo > getInstalledApps(boolean getSysPackages) {     
  2.   
  3.     ArrayList < PInfo > res = new ArrayList < PInfo > ();     
  4.   
  5.      List < PackageInfo > packs = getPackageManager().getInstalledPackages(0);     
  6.   
  7.      for(int i=0;i < packs.size();i++) {     
  8.   
  9.          PackageInfo p = packs.get(i);     
  10.   
  11.          if ((!getSysPackages) && (p.versionName == null)) {     
  12.   
  13.              continue ;     
  14.   
  15.          }     
  16.   
  17.         PInfo newInfo = new PInfo();     
  18.   
  19.         newInfo.appname = p.applicationInfo.loadLabel(getPackageManager()).toString();     
  20.   
  21.          newInfo.pname = p.packageName;     
  22.   
  23.         newInfo.versionName = p.versionName;     
  24.   
  25.         newInfo.versionCode = p.versionCode;     
  26.   
  27.         newInfo.icon = p.applicationInfo.loadIcon(getPackageManager());     
  28.   
  29.          res.add(newInfo);     
  30.   
  31.      }     
  32.   
  33.     return res;     
  34.   
  35.  }   

 

用这个方法来获取系统内所包含的Applications信息:

Java代码 复制代码
  1. private void listPackages() {     
  2.   
  3.     ArrayList < PInfo > apps = getInstalledApps(false); /* false = no system packages */    
  4.   
  5.     final int max = apps.size();     
  6.   
  7.     for (int i=0; i < max; i++) {     
  8.   
  9.         apps.get(i).prettyPrint();     
  10.   
  11.     }     
  12.   
  13.  }   

 

还有一个相对比较简单的应用,借由PackageManager来获取Application信息:

Java代码 复制代码
  1. PackageManager manager = this.getPackageManager();     
  2.   
  3.  try {         
  4.   
  5.     PackageInfo info = manager.getPackageInfo(this.getPackageName(), 0);     
  6.   
  7.     String packageName = info.packageName;     
  8.   
  9.     int versionCode = info.versionCode;     
  10.   
  11.    String versionName = info.versionName;       
  12.        
  13.   
  14.  } catch (NameNotFoundException e) {     
  15.   
  16.     // TODO Auto-generated catch block     
  17.   
  18.  }   

 

 

 

 

抱歉!评论已关闭.