获取系统内Applications的基本信息

来源:互联网 发布:深圳软件开发跨境电商 编辑:程序博客网 时间:2024/04/29 07:26

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

01class PInfo {
02    private String appname = "";
03    private String pname = "";
04    private String versionName = "";
05    private int versionCode = 0;
06    private Drawable icon;
07    private void prettyPrint() {
08        log(appname + "t" + pname + "t" + versionName + "t" + versionCode + "t");
09    }
10}

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

01private ArrayList < PInfo > getInstalledApps(boolean getSysPackages) {
02    ArrayList < PInfo > res = new ArrayList < PInfo > ();
03    List < PackageInfo > packs = getPackageManager().getInstalledPackages(0);
04    for(int i=0;i < packs.size();i++) {
05        PackageInfo p = packs.get(i);
06        if ((!getSysPackages) && (p.versionName == null)) {
07            continue ;
08        }
09        PInfo newInfo = new PInfo();
10        newInfo.appname = p.applicationInfo.loadLabel(getPackageManager()).toString();
11        newInfo.pname = p.packageName;
12        newInfo.versionName = p.versionName;
13        newInfo.versionCode = p.versionCode;
14        newInfo.icon = p.applicationInfo.loadIcon(getPackageManager());
15        res.add(newInfo);
16    }
17    return res;
18}

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

1private void listPackages() {
2    ArrayList < PInfo > apps = getInstalledApps(false); /* false = no system packages */
3    final int max = apps.size();
4    for (int i=0; i < max; i++) {
5        apps.get(i).prettyPrint();
6    }
7}

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

01PackageManager manager = this.getPackageManager();
02try 
03 
04   PackageInfo info = manager.getPackageInfo(this.getPackageName(),0);
05   String packageName = info.packageName;
06   int versionCode = info.versionCode;
07   String versionName = info.versionName; 
08 
09catch (NameNotFoundException e) {
10   // TODO Auto-generated catch block
11}

一般情况并不太需要这样的应用,但是可以借鉴这样的方法来处理类似的问题,多看一些总是好的!
资源引用 androidsnippets.org

Tags: ArrayList, Drawable, Icon, PackageInfo, PackageManager

Posted in Resource, Tips |

Related Posts

  • Android UI 优化 [ 类别:Performance ] #1 (0)

 

原创粉丝点击