获取系统内Applications的基本信息

本文介绍了一种通过编程方式获取Android设备上安装的应用程序的基本信息的方法,包括应用名称、包名、版本号及图标等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

01.class 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.}

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

01.private 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信息:

1.private 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.}
<!-- Easy AdSenser V2.37 --><!-- Post[count: 2] -->

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

01.PackageManager manager = this.getPackageManager();
02.try
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. 
09.} catch (NameNotFoundException e) {
10.   // TODO Auto-generated catch block
11.}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值