该楼层疑似违规已被系统折叠隐藏此楼查看此楼
Android实现获取系统应用列表-达内Android分享
本文介绍在Android中如何获取系统应用程序列表。
Android系统为我们提供了很多服务管理的类,包括ActivityManager、PowerManager(电源管理)、AudioManager(音频管理) 等。除此之外,还提供了一个PackageManger管理类,它的主要职责是管理应用程序包。 通过它,我们就可以获取应用程序信息。
PackageManager的功能:
•安装,卸载应用
•查询permission相关信息
•查询Application相关信息(application,activity,receiver,service,provider及相应属性等)
•查询已安装应用
•增加,删除permission
•清除用户数据、缓存,代*段等
我们可以用PackageManager来显示系统安装的应用程序列表或者系统程序列表
相关类的介绍
PackageItemInfo类
说明: AndroidManifest.xml文件中所有节点的基类,提供了这些节点的基本信息:a label、icon、 meta-data。它并不 直接使用,而是由子类继承然后调用相应方法。
常用字段:
public int icon 获得该资源图片在R文件中的值 (对应于android:icon属性)
public int labelRes 获得该label在R文件中的值(对应于android:label属性)
public String name 获得该节点的name值 (对应于android:name属性)
public String packagename 获得该应用程序的包名 (对应于android:packagename属性)
常用方法:
Drawable loadIcon(PackageManager pm) 获得当前应用程序的图像
CharSequence loadLabel(PackageManager pm) 获得当前应用程序的label
ActivityInfo类
继承自 PackageItemInfo
说明: 获得应用程序中或者 节点的信息 。
我们可以通过它来获取我们设置的任何属性,包括 theme 、launchMode、launchmode等
常用方法继承至PackageItemInfo类中的loadIcon()和loadLabel()
ServiceInfo 类
说明: 同ActivityInfo类似 ,同样继承自 PackageItemInfo,只不过它表示的是节点信息。
ApplicationInfo类
继承自 PackageItemInfo
说明:获取一个特定引用程序中节点的信息。
字段说明:
flags字段: FLAG_SYSTEM系统应用程序
FLAG_EXTERNAL_STORAGE表示该应用安装在sdcard中
常用方法继承至PackageItemInfo类中的loadIcon()和loadLabel()
ResolveInfo类
说明:根据节点来获取其上一层目录的信息,通常是、、节点信息。
常用字段:
public ActivityInfo activityInfo 获取 ActivityInfo对象,即或节点信息
public ServiceInfo serviceInfo 获取 ServiceInfo对象,即节点信息