PackageManager相关
本类API是对全部基于载入信息的数据结构的封装,包含下面功能:
安装,卸载应用查询permission相关信息
查询Application相关信息(application,activity,receiver,service,provider及对应属性等)
查询已安装应用
添加?,删除permission
清除用户数据、缓存,代码段等
/**
* PackageManager介绍:
* 本类API是对全部基于载入信息的数据结构的封装,包含下面功能:
* 安装,卸载应用 查询permission相关信息 查询Application相关
* 信息(application,activity,receiver,service,provider及对应属性等)
* 查询已安装应用 添加?,删除permission 清除用户数据、缓存,代码段等 非查询相关的API须要特定的权限。
* 主要包括了,安装在当前设备上的应用包的相关信息
* 例如以下:获取已经安装的应用程序的信息
*/
private HashMap<String, String> installPackagesInfo(){
// 获取packageManager对象
PackageManager packageManager = this.getPackageManager();
/*getInstalledApplications 返回当前设备上安装的应用包集合
* ApplicationInfo相应着androidManifest.xml中的application标签。通过它能够获取该application相应的信息
*/
List<ApplicationInfo> applicationInfos = packageManager.getInstalledApplications(0);
HashMap<String, String> resultMap = new HashMap<String, String>();
Iterator<ApplicationInfo> iterator = applicationInfos.iterator();
while(iterator.hasNext()){
ApplicationInfo applicationInfo = iterator.next();
String packageName = applicationInfo.packageName;// 包名
String packageLabel = packageManager.getApplicationLabel(applicationInfo).toString();//获取label
resultMap.put(packageLabel, packageName);
}
return resultMap;
}
另外在PackageManager类中,我们发现了几个非常好玩的方法。
XMLResourceParse getXml(String packageName,int resid,ApplicationInfo appInfo)能够从指定的包中载入某个xml文件。