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 询问已安装应用程序名册中的更改:
添加回答
举报