一、PackageManager的功能 1.安裝、卸載應用。2.查詢permission相關信息。3.查詢Application相關信息(application,activity,receiver,service,provider及相應屬性等)。4.查詢已安裝應用。5.增加,刪除permission ...
一、PackageManager的功能
1.安裝、卸載應用。
2.查詢permission相關信息。
3.查詢Application相關信息(application,activity,receiver,service,provider及相應屬性等)。
4.查詢已安裝應用。
5.增加,刪除permission。
6.清除用戶數據、緩存、代碼段等。
二、PackageManager類
1.public abstract PackageManager getPackageManager()
功能:獲得一個PackageManager對象。
2.public abstract Drawable getApplicationIcon(String packageName)
參數:packageName 包名。
功能:返回給定包名的圖標,否則返回null。
3.public abstract ApplicationInfo getApplicationInfo(String packageName, int flags)
參數:packageName 包名 flags 該ApplicationInfo是此flags標記,通常可以直接賦予常數0即可。
功能:返回該ApplicationInfo對象。
4.public abstract List<ApplicationInfo> getInstalledApplications(int flags)
參數:flag一般為GET_UNINSTALLED_PACKAGES,那麼此時會返回所有ApplicationInfo。可以對ApplicationInfo的flag過濾,得到需要的。
功能:返回給定條件的所有PackageInfo。
5.public abstract ResolveInfo resolveActivity(Intent intent, int flag)
參數:intent查詢條件,Activity所配置的action和categry。
flag:MATCH_DEFAULT_ONLY:Category必須帶有CATEGORY_DEFAULT的Activity,才匹配。
GET_INTENT_FILTERS:匹配Intent條件即可。
GET_RESOLVED_FILTER:匹配Intent條件即可。
功能:返回給定條件的ResolveInfo對象(本質上是Activity)。
public abstract List<ResolveInfo> queryIntentServices(Intent intent, int flags)
參數:同resolveActivity相同。
功能:返回給定條件的所有ResolveInfo對象(本質上是Service),集合對象。
三、PackageItemInfo類
說明:AndroidManifest.xml文件中所有節點的基類,提供了這些節點的基本信息:label、icon、meta-data。它並不直接使用,而是由子類繼承然後調用相應方法。
四、PackageInfo類
說明:手動獲取AndroidManifest.xml文件的信息。
常用欄位:
public String packageName 包名。
public ActivityInfo[] activities 所有<activity>節點信息。
public ApplicationInfo applicationInfo <application>節點信息,只有一個。
public ActivityInfo[] receivers 所有<receiver>節點信息,多個。
public ServiceInfo[] services 所有<service>節點信息,多個。
五、ApplicationInfo類繼承自PackageItemInfo
說明:獲取一個特定引用程式中<application>節點的信息。
欄位說明:
flags欄位:FLAG_SYSTEM 系統應用程式。
FLAG_EXTERNAL_STOTAGE 表示該應用安裝在sdcard中。
常用方法繼承自PackageItemInfo類中的loadIcon()和loadLabel()。
六、ActivityInfo類繼承自PackageItemInfo類
說明:獲取應用程式中<activity/>或者<receiver/>節點的信息。可以通過它來獲取設置的任何屬性,包括theme、launchMode等。
常用方法繼承自PackageItemInfo類中的loadIcon()和loadLabel()。
七、ServiceInfo類
說明:同ActivityInfo類似,同樣繼承自PackageItemInfo,只不過它表示的是<service>節點信息。
八、ResolveInfo類
說明:根據<intent>節點來獲取其上一層目錄的信息,通常是<activity>、<receiver>、<service>節點信息。
常用方法有loadIcon(PackageManager pm)和loadLabel(PackageManager pm)。