java - 在面向 Oreo 的 Android 应用上使用 Android 广播
问题描述
我计划将我的 Android 应用程序定位到 Oreo,但文档中提到不再允许在 Android Manifest 中声明隐式广播。这里很少有例外。
我正在使用这些广播
<receiver android:name=".ABC">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
</intent-filter>
</receiver>
<receiver android:name=".ABCD">
<intent-filter>
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
</intent-filter>
</receiver>
<receiver android:name=".ABCDE">
<intent-filter>
<action android:name="android.intent.action.TIME_SET" />
</intent-filter>
</receiver>
<receiver android:name=".ABCDEF" />
<receiver
android:name=".ABCDEFG"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
任何人都可以帮助我知道上述广播中的哪些内容是不允许的。如果我继续使用它们会怎样?
解决方案
android.intent.action.BOOT_COMPLETED
并且android.intent.action.TIME_SET
在您链接到的白名单上。这些广播应该像往常一样工作。
android.intent.action.MY_PACKAGE_REPLACED
不是隐式广播。它将通过明确的Intent
. 这应该像往常一样工作。
两者都不android.intent.action.QUICKBOOT_POWERON
是com.android.vending.INSTALL_REFERRER
Android SDK 的一部分,因此您需要研究那些定义和发送这些广播的人。
推荐阅读
- json-rpc - 在 json-rpc Web 服务上返回 Auth 错误代码
- docker - 在具有缓存的从站上构建 docker 映像
- xcode - 无法在 Xcode 10.2 上构建 clang
- amazon-web-services - EC2 SSH 连接断管;无法重新连接
- c# - 为什么在单元测试中从控制器转换结果返回 null?
- bash - 如何在 AWK 命令中使用数值数组进行比较?
- mysql - 通过 eloquent 在 Laravel 中更新级联删除的文件夹计数
- android - 从自定义视图调用 Activity 方法
- php - 如何使用 WP Rocket Lazy Load Placeholder php 过滤器更改占位符图像
- c# - 在不复制代码的情况下创建 Dapper 方法的异步和同步版本?