在这个例子中将展示如何获取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.}
还有一个相对比较简单的应用,借由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.}
一般情况并不太需要这样的应用,但是可以借鉴这样的方法来处理类似的问题,多看一些总是好的!
本文介绍了一种通过编程方式获取Android设备上安装的应用程序的基本信息的方法,包括应用名称、包名、版本号及图标等。
940

被折叠的 条评论
为什么被折叠?



