標籤:android apk 廣播 安裝 卸載
Android apk 安裝、清理資料、強行停止、卸載監聽
不廢話,上代碼
<receiver android:name="com.test.Receiver" android:enabled="true"> <intent-filter > <action android:name="android.intent.action.PACKAGE_ADDED"/> <action android:name="android.intent.action.PACKAGE_REMOVED"/> <action android:name="android.intent.action.PACKAGE_CHANGED"/> <action android:name="android.intent.action.PACKAGE_DATA_CLEARED"/> <action android:name="android.intent.action.PACKAGE_FIRST_LAUNCH"/> <action android:name="android.intent.action.PACKAGE_FULLY_REMOVED"/> <action android:name="android.intent.action.PACKAGE_REPLACED"/> <action android:name="android.intent.action.PACKAGE_RESTARTED"/> <data android:scheme="package"></data> </intent-filter> </receiver>
以下是各個情況下,發送的廣播
1\安裝
android.intent.action.PACKAGE_ADDED
2覆蓋安裝
android.intent.action.PACKAGE_REMOVED
android.intent.action.PACKAGE_ADDED
android.intent.action.PACKAGE_REPLACED
3\清理資料
android.intent.action.PACKAGE_RESTARTED
android.intent.action.PACKAGE_DATA_CLEARED
4\強行停止
Action: android.intent.action.PACKAGE_RESTARTED
5\卸載
android.intent.action.PACKAGE_REMOVED
android.intent.action.PACKAGE_FULLY_REMOVED
在廣播中得到包名的方法
ComponentName cn = intent.getComponent() ;Uri uu= intent.getData() ;String name = uu.getSchemeSpecificPart();
得到apk(未安裝)相關資訊:
public static void getAPKPackageInfo(Context context,String apkPath){ PackageManager packageManager = context.getPackageManager(); PackageInfo info = packageManager.getPackageArchiveInfo(apkPath, PackageManager.GET_ACTIVITIES); if(info != null){ ApplicationInfo appInfo = info.applicationInfo; String appName = packageManager.getApplicationLabel(appInfo).toString(); String packageName = appInfo.packageName; //得到安裝包名稱 String version=info.versionName; //得到版本資訊 Drawable icon = packageManager.getApplicationIcon(appInfo);//得到表徵圖資訊 } }
Android apk 監聽