任何有识之士解决此问题都将非常有帮助... 预先谢谢你
答案 0 :(得分:-1)
在 Android 8.0(API级别26)之前,请选中this answer
<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>
来自docs:的 android 8.0 之后
面向Android 8.0或更高版本的应用无法再注册 清单中隐式广播的广播接收器。一个 隐式广播是不针对该应用的广播 特别。例如,ACTION_PACKAGE_REPLACED是隐式的 广播,因为它已发送给所有注册的听众,让他们 知道设备上的某些包装已被替换。然而, ACTION_MY_PACKAGE_REPLACED不是隐式广播,因为它是 仅发送到已替换其软件包的应用程序,无论有多少 其他应用已为该广播注册了侦听器。
解决方法,由CommonsWare,sample app
您还可以使用轮询,设置JobScheduler作业来检查每个 经常向PackageManager询问花名册中发生了什么变化 通过getChangedPackages()安装的应用程序: