1 回答

TA貢獻1866條經驗 獲得超5個贊
這在Android 8.0(API 級別 26)之前是可能的,檢查這個答案
<receiver android:name=".apps.AppListener">
<intent-filter android:priority="100">
<action android:name="android.intent.action.PACKAGE_INSTALL"/>
<action android:name="android.intent.action.PACKAGE_ADDED"/>
<action android:name="android.intent.action.PACKAGE_REMOVED"/>
<data android:scheme="package"/>
</intent-filter>
</receiver>
來自文檔的android 8.0之后:
面向 Android 8.0 或更高版本的應用無法再在其清單中為隱式廣播注冊廣播接收器。隱式廣播是不專門針對該應用程序的廣播。例如, ACTION_PACKAGE_REPLACED 是一個隱式廣播,因為它被發送到所有注冊的偵聽器,讓他們知道設備上的某些包已被替換。但是, ACTION_MY_PACKAGE_REPLACED 不是隱式廣播,因為它只發送到包被替換的應用程序,無論有多少其他應用程序為該廣播注冊了偵聽器。
CommonsWare 的解決方法,示例應用程序
您還可以使用輪詢,設置 JobScheduler 作業以經常檢查,通過getChangedPackages()向 PackageManager 詢問已安裝應用程序名冊中的更改:
添加回答
舉報