查看最新的Android Oreo发行说明,似乎应用程序只能注册少数隐式广播. ACTION_PACKAGE_ADDED和ACTION_PACKAGE_REMOVED不在其中.是否有接收这些广播的解决方法?
解决方法:
Apps that target Android 8.0 or higher can no longer register broadcast receivers for implicit broadcasts in their manifest. An implicit broadcast is a broadcast that does not target that app specifically. For example, ACTION_PACKAGE_REPLACED is an implicit broadcast, since it is sent to all registered listeners, letting them know that some package on the device was replaced.
这表示您无法在清单中注册这些意图.您仍然可以以编程方式注册它们,以便在您的应用运行时接收它们.
您也可以尝试ACTION_PACKAGE_FULLY_REMOVED,这是您仍然可以通过在清单中注册它来听取的exceptions之一.添加包时没有这样的“替代”.
正如CW所说,您还可以定期检查已安装应用程序名单中的更改.
You can also use polling, setting up a JobScheduler job to check every so often, asking PackageManager for what has changed in the roster of installed apps via 07002.
标签:android-8-0-oreo,android
来源: https://codeday.me/bug/20190727/1551251.html
从Android 8.0开始,应用程序不能在清单中注册ACTION_PACKAGE_ADDED和ACTION_PACKAGE_REMOVED等隐式广播。为了解决这个问题,开发者可以编程方式注册广播接收器,或者使用ACTION_PACKAGE_FULLY_REMOVED这一例外情况。此外,定期检查已安装应用列表的变化或使用JobScheduler也是可行的解决方案。

5880

被折叠的 条评论
为什么被折叠?



