获取系统内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.  }   
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");  

     }  

 } 

 

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

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

 } 

 

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

Java代码 复制代码
  1. private  void  listPackages() {     
  2.   
  3.     ArrayList < PInfo > apps = getInstalledApps(false );     
  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.  }   
private void listPackages() {  

    ArrayList < PInfo > apps = getInstalledApps(false);  

    final int max = apps.size();  

    for (int i=0; i < max; i++) {  

        apps.get(i).prettyPrint();  

    }  

 } 

 

还有一个相对比较简单的应用,借由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.  } 
  19. http://blog.sina.com.cn/s/blog_6d8189930100nyds.html
  20. final Context context = mContext;
  21. final PackageManager pm = context.getPackageManager();

    abstract PackageManager getPackageManager ()

    Return PackageManager instance to find global package information.

     

    获取系统内 Applications 的基本信息可以使用以下这个方法。
    getPackageManager().getInstalledPackages (0)

  22. abstract PackageInfo
      getPackageInfo (String packageName, int flags)
    Retrieve overall information about an application package that is installed on the system.
  23. http://firefox7.javaeye.com/blog/865027

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值