欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Andriod PackageManager使用方法

程序员文章站 2022-07-09 22:43:02
1.获取系统应用程序列表 Android系统提供了很多服务管理类,包括ActivityManager,PowerManager,AudioManager,PackageManag...

1.获取系统应用程序列表

Android系统提供了很多服务管理类,包括ActivityManager,PowerManager,AudioManager,PackageManager

PackageManager的功能:
.安装,卸载应用
.查询Permission相关信息
.查询Aplication相关信息(application,activity,receiver,service,provider及相应属性等)
.查询已经安装的应用
.清除用户数据,缓存,代码段等
.显示系统安装的应用程序列表或者系统程序列表

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

常用字段:
public int icon:获取该资源图片在R文件的值(对应于android:icon属性)
public int label:获取该label对应R文件的值(对应于android:label属性)
public String name:获取该节点的name(对应于android:name属性)
public String packagename:获取该应用程序包名(对应于android:packageName属性)

常用方法:
Drawabel loadIcon(PackaManager pm):获取当前应用程序的图像
CharSequence loadLabel(PackageManager pm):获取当前应用程序的label


2.ActivityInfo类:
继承自PackageItemInfo
说明:获取应用程序中获取节点信息
我们可以通过它来获取我们设置的任何属性,包括:theme,launchMode等
常用的方法继承至PackageIntemInfo类中的loadIcon()和loadLabel()

3.ServiceInfo类
说明:同ActivityInfo类似,同样的继承自PackageItemInfo,只不过它表示是节点信息

4.ApplicationInfo类:
继承自PackageItemInfo
说明:获取一个特定应用程序中节点的
字段说明:
flags字段:FLAG_SYSTEM 系统应用程序
FLAG_EXTERNAL_STORAGE 表示该应用安装在sdcard中
常用的方法继承至:packageItemInfo类中的LoadIcon()和loadLabel()

5.ResolveInfo类:
说明:根据节点来获取上一层目录的信息,通常是,,节点信息。
常用字段:
public ActivityInfo activiInfo获取activityInfo对象,即节点信息
public ServiceInfo? serviceInfo 获取ServiceInfo对象,即节点信息

常用方法:
Drawabel loadIcon(PackaManager pm):获取当前应用程序的图像
CharSequence loadLabel(PackageManager pm):获取当前应用程序的label

6.PackageInfo类
说明:获取AndroidManifest.xml字段信息
常用字段信息:
public String packageName
public ActivityInfo[]activities
public ApplicationInfo applicationInfo
public ActivityInfo[]receiver
public ServiceInfo[]services

7.PackageManager
说明:获取系统安装的程序
可以通过:getPackageManager() 方法获取
常用的方法:
public abstract PackageManager getPackageManager()
public abstract Drawable getApplicationIcon(String packageName)
public abstract? ApplicationInfo getApplicationInfo(String packageName,int flags)
public abstract ListgetInstalledApplication(int flags)
方法说明:flags一般是进行过滤使用的,flages一般:GET_UNINSTALLED_PACKAGE,那么返回所以的ApplicationInfo.我们可以通过ApplicationInfo的flags过滤,得到我们需要的
public abstract ListgetInstalledPackage(int flags)

public abstract ResolveInfo resolverActivity(Intent intent,int flags)
参数:Intent查询条件,Activity所配置的action和category flags:MATCH_DEFAULT_ONLY,category:必须带有CATEGORY_DEFAULT的Activity,才匹配GET_INTENT_FILTER:匹配Intent条件即可,GET_RESOLVED_FILTER:匹配Intent条件即可
功能:返回给定条件的ResolverInfo对象(本质上是Activity)

public abstract ListqueryIntentActivities(Intent intent,int flags)
功能:返回给定条件的所有ResolveInfo对象(本质上是Activity),集合对象

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

public abstract ListqueryIntentServices(Intent intent,int flags)
功能:返回给定条件的所有ResolveInfo对象(本质上是Service),集合对象