PackageManager相關
本類API是對所有基於載入資訊的資料結構的封裝,包括以下功能:
安裝,卸載應用查詢permission相關資訊
查詢Application相關資訊(application,activity,receiver,service,provider及相應屬性等)
查詢已安裝應用
增加,刪除permission
清除使用者資料、緩衝,程式碼片段等
/**<br /> * PackageManager介紹:<br /> * 本類API是對所有基於載入資訊的資料結構的封裝,包括以下功能:<br /> * 安裝,卸載應用 查詢permission相關資訊 查詢Application相關<br /> * 資訊(application,activity,receiver,service,provider及相應屬性等)<br /> * 查詢已安裝應用 增加,刪除permission 清除使用者資料、緩衝,程式碼片段等 非查詢相關的API需要特定的許可權。<br /> * 主要包含了,安裝在當前裝置上的應用程式套件的相關資訊<br /> * 如下:擷取已經安裝的應用程式的資訊<br /> */<br />private HashMap<String, String> installPackagesInfo(){<br />// 擷取packageManager對象<br />PackageManager packageManager = this.getPackageManager();<br />/*getInstalledApplications 返回當前裝置上安裝的應用程式套件集合<br /> * ApplicationInfo對應著androidManifest.xml中的application標籤。通過它可以擷取該application對應的資訊<br /> */<br />List<ApplicationInfo> applicationInfos = packageManager.getInstalledApplications(0);<br />HashMap<String, String> resultMap = new HashMap<String, String>();<br />Iterator<ApplicationInfo> iterator = applicationInfos.iterator();<br />while(iterator.hasNext()){<br />ApplicationInfo applicationInfo = iterator.next();<br />String packageName = applicationInfo.packageName;// 包名<br />String packageLabel = packageManager.getApplicationLabel(applicationInfo).toString();//擷取label<br />resultMap.put(packageLabel, packageName);<br />}</p><p>return resultMap;</p><p>}
另外在PackageManager類中,我們發現了幾個很好玩的方法。
XMLResourceParse getXml(String packageName,int resid,ApplicationInfo appInfo)可以從指定的包中載入某個xml檔案。