参考:http://www.linuxidc.com/Linux/2012-02/53072.htm

  Android系统为我们提供了很多服务管理类,包括ActivityManager、PowerManager(电源管理)、AudioManager(音频管理)。PackageManager主要是管理应用程序包,通过它就可以获取应用程序信息。

写了一个Demo,主要实现了获取系统中所有应用程序信息,并构建Intent,启动对应的应用。

AndroidPackageDemo.7z

  

引入:AndroidManifest.xml文件节点说明:

  

相关类的介绍

PackageManger 类

说明: 获得已安装的应用程序信息 。可以通过getPackageManager()方法获得。 

常用方法: public abstract PackageManager getPackageManager()
功能:获得一个PackageManger对象  

public abstract Drawable getApplicationIcon(String packageName)
参数: packageName 包名
功能:返回给定包名的图标,否则返回null
public abstract ApplicationInfo   getApplicationInfo(String packageName, int flags)
参数:  packagename 包名flags 该ApplicationInfo是此flags标记,通常可以直接赋予常数0即可
功能:返回该ApplicationInfo对象
public abstract List<ApplicationInfo>  getInstalledApplications(int flags)
参数:  flag为一般为GET_UNINSTALLED_PACKAGES,那么此时会返回所有ApplicationInfo。我们可以对ApplicationInfo的flags过滤,得到我们需要的。
功能:返回给定条件的所有PackageInfo
public abstract List<PackageInfo>  getInstalledPackages(int flags)
参数如上
功能:返回给定条件的所有PackageInfo
public abstractResolveInfo  resolveActivity(Intent intent, int flags)
参数:    intent 查寻条件,Activity所配置的action和categoryflags: MATCH_DEFAULT_ONLY    :Category必须带有CATEGORY_DEFAULT的Activity,才匹配GET_INTENT_FILTERS         :匹配Intent条件即可GET_RESOLVED_FILTER    :匹配Intent条件即可
功能 :返回给定条件的ResolveInfo对象(本质上是Activity)

public abstract  List<ResolveInfo>  queryIntentActivities(Intent intent, int flags)
参数同上
功能 :返回给定条件的所有ResolveInfo对象(本质上是Activity),集合对象

public abstract ResolveInfo  resolveService(Intent intent, int flags)
参数同上
功能 :返回给定条件的ResolveInfo对象(本质上是Service)

public abstract List<ResolveInfo> queryIntentServices(Intent intent, int flags)
参数同上
功能 :返回给定条件的所有ResolveInfo对象(本质上是Service),集合对象

  

PackageInfo类  

  说明:手动获取AndroidManifest.xml文件的信息 。常用字段:public String    packageName                   包名
public ActivityInfo[]     activities                   所有<activity>节点信息public ApplicationInfo applicationInfo       <application>节点信息,只有一个public ActivityInfo[]    receivers                  所有<receiver>节点信息,多个public ServiceInfo[]    services                  所有<service>节点信息 ,多个

  

PackageItemInfo类

说明: AndroidManifest.xml文件中所有节点的基类,提供了这些节点的基本信息:label、icon、 meta-data。它并不直接使用,而是由子类继承然后调用相应方法。

ApplicationInfo类 继承自  PackageItemInfo

说明:获取一个特定引用程序中<application>节点的信息。字段说明:flags字段: FLAG_SYSTEM 系统应用程序、FLAG_EXTERNAL_STORAGE 表示该应用安装在sdcard中常用方法继承至PackageItemInfo类中的loadIcon()和loadLabel()

ActivityInfo类  继承自 PackageItemInfo
  

说明: 获得应用程序中<activity/>或者 <receiver />节点的信息 。我们可以通过它来获取我们设置的任何属性,包括theme 、launchMode、launchmode等

常用方法继承至PackageItemInfo类中的loadIcon()和loadLabel()

ServiceInfo 类

说明: 同ActivityInfo类似 ,同样继承自 PackageItemInfo,只不过它表示的是<service>节点信息。
ResolveInfo类说明:根据<intent>节点来获取其上一层目录的信息,通常是<activity>、<receiver>、<service>节点信息。

  

PackageManager使用相关推荐

  1. android 获取 第三方应用,​android PackageManager的使用如何获取第三方应用程序(包)的信息,求大神指点...

    我只写出了系统的应用程序(包)的信息,第三方的没有出来,怎么办,求解 public class MainActivity extends Activity { List appInfos; @Over ...

  2. android之PackageManager简单介绍

    PackageManager相关 本类API是对全部基于载入信息的数据结构的封装,包含下面功能: 安装,卸载应用查询permission相关信息 查询Application相关信息(applicati ...

  3. XmlResourceParser android.content.pm.ProviderInfo.loadXmlMetaData(android.content.pm.PackageManager,

    android开发之多个provider的解决方法: 下面的报错针对android7.0及以上都是一个问题就是provider的authorities没有对上. 看下报错代码: java.lang.N ...

  4. linux ndk编译so,有的APP NDK 编译的SO文件 无法调用 PackageManager

    反馈BUG之前,先issue里面搜看看有没有别人已经反馈过,重复的不予处理!! 问题描述 最近下了一个不可描述APP,实机是能运行的,不过在VXP里则报如下错误 07-14 15:48:28.672 ...

  5. Android 之PackageManager框架

    http://blog.csdn.net/stonecao/article/details/6591454 1.接着前面讲的ActivityManager框架,继续说一下系统另一个重要的框架,Pack ...

  6. Android之获取应用程序(包)的大小-----PackageManager的使用(二)

    http://blog.csdn.net/qinjuning/article/details/6892054 通过第一部分 << Android中获取应用程序(包)的信息-----Pack ...

  7. Android之中获取应用程序(包)的信息-----PackageManager的使用(一)

    转载:http://blog.csdn.net/qinjuning/article/details/6867806 本节内容是如何获取Android系统中应用程序的信息,主要包括packagename ...

  8. Android中获取应用程序(包)的信息-----PackageManager的使用(一)

    本节内容是如何获取Android系统中应用程序的信息,主要包括packagename.label.icon.占用大小等.具体分为两个 部分,计划如下: 第一部分: 获取应用程序的packagename ...

  9. android 获取默认程序图标,android – PackageManager.getApplicationIcon()返回默认图标?...

    我刚想通了.有一个PackageManager.getDefaultActivityIcon()方法返回一个Drawable.如果Drawable的Bitmap与应用程序图标Drawable的Bitm ...

  10. Android应用程序管理系列(四)—— packagemanager flags 与 packageInfo 

    Android PackageInfo 应用程序信息 1.简述 1 官方解析为 Overall information about the contents of a package. This co ...

最新文章

  1. vPower系列1: vMotion-没有vMotion,虚拟化只是玩具
  2. 一天狂揽2000+星,微软面向初学者ML课程来了,完全免费
  3. 【剑指offer-Java版】25二叉树中和为某一值的路径
  4. 第20月第4天 pycharm utf-8
  5. 【spring学习笔记】(二)Spring MVC注解配置 参数转换注解@RequestMapping@RequestParam、@PathVariable@MatrixVariable
  6. C# 系统应用之窗体最小化至任务栏及常用操作
  7. LMSn没有运行在RT (real time) 模式Oracle 19c RAC?
  8. bzoj 3798: 特殊的质数(分块打表)
  9. 【爬虫】从地理空间数据云上批量下载遥感影像
  10. 牛顿法详解(海森矩阵如何使用)
  11. 高等数学---常见的几个泰勒公式
  12. 电池、电机、螺旋桨搭配
  13. 手机屏幕分类、材料硬度解析
  14. 用计算机弹小白船,光遇小白船怎么弹 小白船琴谱
  15. excel 查找图相框或文本框中的内容
  16. DKN: Deep Knowledge-Aware Network for News Recommendation
  17. 【72】编辑距离问题
  18. python中爬取网页图片
  19. svn: OPTIONS of 'https://lym-pc/svn/CRM': Could not resolve hostname 'lym-pc'
  20. 【全志T113-S3_100ask】4G模块EC200A的使用

热门文章

  1. Jenkins下载插件,报java.net.SocketTimeoutException: Read timed out
  2. 网红电商第一股首份财报继续亏损,如涵的网红效应还能持续多久?
  3. wav怎么转换成mp3?
  4. 基于W800的AIOT离在线一体方案说明 (阿里飞燕+离线语音控制)
  5. 成功解决3dmax中,旋转时透视图可以看穿物体
  6. matlab中如何对一个小数取整,学习笔记153—matlab中小数如何取整?
  7. web网页保存为PDF文件
  8. HOST 文件网页屏蔽广告
  9. 多源多目标统计信息融合 目标跟踪 信息融合 贝叶斯滤波总结
  10. Flutter ListView子项长按浮层菜单实现