当前位置: 移动技术网 > 移动技术>移动开发>Android > Andriod PackageManager使用方法

Andriod PackageManager使用方法

2018年02月11日  | 移动技术网移动技术  | 我要评论
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),集合对象

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网