博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android点滴(18)之PackageManager
阅读量:6237 次
发布时间:2019-06-22

本文共 3618 字,大约阅读时间需要 12 分钟。

PackageManager

 

Class for retrieving various kinds of information related to the application packages that are currently installed on the device. You can find this class through getPackageManager().

 

PackageManager用来获取安装在当前设备的应用程序包相关信息的类。可以通过getPackageManager()获取对象。

 

Android系统为我们提供了很多服务管理的类,包括ActivityManagerPowerManager(电源管理)AudioManager(音频管理) 等。除此之外,还提供了一个PackageManger管理类,它的主要职责是管理应用程序包。 通过它,我们就可以获取应用程序信息。  

 

      PackageManager的功能: 

      安装,卸载应用

      查询permission相关信息

      查询Application相关信息(applicationactivityreceiverserviceprovider及相应属性等)

      查询已安装应用

      增加,删除permission

      清除用户数据、缓存,代码段等

      我们可以用PackageManager来显示系统安装的应用程序列表或者系统程序列表 

 

      相关类的介绍

      PackageItemInfo

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

 

      常用字段:

      public int icon 获得该资源图片在R文件中的值 (对应于android:icon属性)

      public int labelRes 获得该labelR文件中的值(对应于android:label属性)

      public String name 获得该节点的name (对应于android:name属性)

      public String packagename 获得该应用程序的包名 (对应于androidpackagename属性)

 

      常用方法:

      Drawable loadIcon(PackageManager pm) 获得当前应用程序的图像

      CharSequence loadLabel(PackageManager pm) 获得当前应用程序的label

 

      ActivityInfo

      继承自 PackageItemInfo

      说明: 获得应用程序中<activity/>或者 <receiver />节点的信息

      我们可以通过它来获取我们设置的任何属性,包括 theme launchModelaunchmode

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

 

      ServiceInfo

      说明: ActivityInfo类似 ,同样继承自 PackageItemInfo,只不过它表示的是<service>节点信息。

 

      ApplicationInfo

      继承自 PackageItemInfo

      说明:获取一个特定引用程序中<application>节点的信息。

      字段说明:    

      flags字段: FLAG_SYSTEM 系统应用程序        

                 FLAG_EXTERNAL_STORAGE 表示该应用安装在sdcard

 

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

 

      ResolveInfo

      说明:根据<intent>节点来获取其上一层目录的信息,通常是<activity><receiver><service>节点信息。

      常用字段:

      public ActivityInfo activityInfo 获取 ActivityInfo对象,即<activity><receiver >节点信息

      public ServiceInfo serviceInfo 获取 ServiceInfo对象,即<activity>节点信息

 

      常用方法:

      Drawable loadIcon(PackageManager pm) 获得当前应用程序的图像

      CharSequence loadLabel(PackageManager pm) 获得当前应用程序的label

 

      PackageInfo

      说明:手动获取AndroidManifest.xml文件的信息

      常用字段:

      public String packageName 包名

      public ActivityInfo[] activities 所有<activity>节点信息

      public ApplicationInfo applicationInfo <application>节点信息,只有一个

      public ActivityInfo[] receivers 所有<receiver>节点信息,多个

      public ServiceInfo[] services 所有<service>节点信息 ,多个

 

      PackageManger

      说明: 获得已安装的应用程序信息

      可以通过getPackageManager()方法获得。

 

      常用方法:

      public abstract PackageManager getPackageManager()

           功能:获得一个PackageManger对象

 

      public abstrac tDrawable getApplicationIcon(StringpackageName)

           参数: 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所配置的actioncategory flags MATCH_DEFAULT_ONLY Category必须带有CATEGORY_DEFAULTActivity,才匹配 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),集合对象

 

 

 

 

转载于:https://www.cnblogs.com/cody1988/archive/2012/04/09/2439304.html

你可能感兴趣的文章
JSP自定义标签开发入门《转》
查看>>
ResultSet相关ResultSetMetaData详细
查看>>
IIS7.5下的web.config 404应该如何配置
查看>>
分享20个最新的免费 UI 设计素材给设计师
查看>>
大论文中对参考文献添加操作相关总结
查看>>
Redis源代码分析(三)---dict哈希结构
查看>>
安卓--获取应用版本名称与版本号
查看>>
【转】Java判断是否是整数,小数或实数的正则表达式
查看>>
****创业者必看:黄太吉商业计划书完整版
查看>>
angularJS 事件广播与接收[转]
查看>>
The main reborn ASP.NET MVC4.0: using CheckBoxListHelper and RadioBoxListHelper
查看>>
什么是数据抽取
查看>>
Integer
查看>>
LaTeX 相对于 Word 有什么优势?
查看>>
invoke方法
查看>>
基于bootstrap的后台二级垂直菜单[转]
查看>>
Android Framework 记录之二
查看>>
李洪强iOS开发之-环信04_消息
查看>>
【Django】Django 文件下载最佳实践
查看>>
lvs调优主要是针对内核参数的调优
查看>>