`
bingoit
  • 浏览: 34281 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

获取系统内Applications的基本信息

 
阅读更多

在这个例子中将展示如何获取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.}

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

分享到:
评论

相关推荐

    数据库系统和应用.pdf

    数据库系统和应用 Database System and Applications 第一章 绪论 第一章 绪论 第一章 绪论 1.1 数据库系统概述 1.2 数据模型 1.3 数据库系统的结构 1.4 数据库系统的组成 1.5 小结 第一章 绪论 数据库的地位 数据库...

    Designing Data-Intensive Applications

    讨论基本原理思想,第一章讲我们的目标,可靠性,可扩展性,可维护性,我们怎么去理解他们以及如获取实现他们。第二章对比了不同的数据模型和查询语言,看看他们在不同场景下的表现如何。第三章讲存储模型,数据库...

    基于python3抓取pinpoint应用信息入库

    这篇文章主要介绍了基于python3抓取pinpoint应用信息入库,文中通过示例代码介绍的非常详细,对大家的学习或者... /applications.pinpoint 获取applications基本信息 /getAgentList.pinpoint 获取对应application ag

    面向对象分析与设计(第3版) Object Oriented Analysis And Design With Applications 3Rd Edition

    应用部分所涉及的领域包括系统架构、数据获取、密码分析、控制系统和Web开发,还给出了一些关于重要问题的有效建议,包括分类、实现策略和高性价比的项目管理。 Amazon.com Review In this eagerly awaited second ...

    操作系统(内存管理)

    基于 UNIX 的系统有两个可映射到附加内存中的基本系统调用: brk: brk() 是一个非常简单的系统调用。还记得系统中断点吗?该位置是进程映射的内存边界。 brk() 只是简单地将这个位置向前或者向后移动,就可以向...

    Fedora 6 and Red Hat Enterprise Linux Bible

    第3部分包括第10章到第14章,分别介绍了基本的系统管理如何为你Feora和RHEL系统上的多个用户提供支持;如何在Fedora和RHEL系统上创建shell脚本和使用cron工具自动化一系列的任务;备份你的系统和从备份中恢复文件的...

    大学文献检索资料 DOC

    第一章 信息检索的基本知识 第一节 信息、知识、文献、情报 信息: 应用文字、数据和信号形式通过一定的传递和处理,来表现各种相互联系的客观事物在运动变化中所具有特征性的内容的总称。 知识: 人们通过实践对...

    超级有影响力霸气的Java面试题大全文档

    redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。 23、EJB与JAVA BEAN的区别?  Java Bean 是可...

    introduction-to-building-front-end-applications-with-react-g-416

    使用React构建前端应用程序简介目标说明本课程将涉及的主题描述本课程的React方法简要描述React您将在本课程中学到什么这门课程是对React.js的介绍,React.js是当前最流行的...,它具有自己非常活跃且广泛的生态系统...

    java jdk实列宝典 光盘源代码

    获取文件的基本信息;列出指定目录下的文件,并可过滤文件;创建文件和目录;删除文件和目录;移动文件和目录; 复制文件和目录;一个简单的文件搜索器; 多种方式读文件内容, 按字节读取文件内容、按字符读取文件...

    Structure from Motion (SFM) Photogrammetry

    因此,SfM摄影测量法提供了快速,自动化和低成本获取3D数据的可能性,这不可避免地引起了地貌界的极大兴趣。在此贡献中,介绍了SfM摄影测量的基本概念,同时也承认了其传统。举几个例子来说明SfM在地貌研究中的应用...

    图像的数据分析.doc

    课程设计任务书 学生姓名: 专业班级: 指导教师: 刘 新 华 工作单位: 信息工程学院 题目:图像的数据分析 要求完成的主要任务: 利用MATLAB仿真软件系统进行图像的数据分析 要求:读取图像并求出图像的最大值、...

    android 面试2

    答:Linux Kernel(Linux 内核)、Libraries(系统运行类库或者C/C++核心库)、Application Framawork(开源框架)、Applications(核心应用程序) 21、什么是ANR,如何避免它? 答:ANR(Application Not Responding):应用...

    EXCEL集成工具箱V6.0

    【系统待机】 使用此功能可以达到节能及锁定电脑一键式进入系统待机状态,再次使用时恢復速度是最快的,一般五秒之內就可以恢復到上次使用状态而无需要重新开机了。 【锁定鼠标】 可即时锁定屏幕鼠标且支持密码锁定...

    java 面试题 总结

    redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。 20、EJB与JAVA BEAN的区别? Java Bean 是可复用...

    EXCEL集成工具箱V8.0完整增强版(精简)

    Excel集成工具箱8.0是利用VBA(Visual Basic for Applications)语言编写的增强应用型插件。包括160个菜单功能和100个左右 自定义函数,集160个工具于一身,但体积小于16MB。当安装集成工具箱后,如果您使用Excel ...

    数据库灾难性恢复(数据库技术;灾难性;恢复;数据备份)

    With the database technology in various industries and a large number of wide application in various fields, in the process of database applications, artificial misuse, human vandalism, system ...

    新版Android开发教程.rar

    The sections below describe the system and software requirements for developing Android applications using the Android SDK tools included in Android 1.1 SDK, Release 1. Supported Supported Supported ...

    测试培训教材

    设置测试集属性中的详细信息: In ITG Request Id, add the IT Governance request ID. Note that this is relevant only when integrating with an IT Governance tool. 设置自动化测试失败时采取的措施: ...

    HGE_系列教材(1-9)

    过System_GetErrorMessage 函数来获取错误消息: if (pHge-&gt;System_Initiate()) { pHge-&gt;System_Start(); } else { MessageBox(NULL, pHge-&gt;System_GetErrorMessage(), "Error", MB_O K | MB_ICONERROR | MB_...

Global site tag (gtag.js) - Google Analytics