为了防止广告垃圾邮件和凭据网络钓鱼,从 Android 14 开始,发送全屏通知的默认 USE_FULL_SCREEN_INTENT
权限只能授予提供通话和闹钟功能的应用。
对于所有在 Android 14 上安装的应用,默认情况下启用 USE_FULL_SCREEN_INTENT
权限。安装后,Google Play 商店会撤销不具备通话或闹钟功能的应用的全屏 intent (FSI) 权限。
对于安装在运行 Android 13 或更低版本的手机上的应用,USE_FULL_SCREEN_INTENT
权限仍然默认启用。
用户权限
在 Android 14 中,应用可以使用 NotificationManager#canUseFullScreenIntent()
来检查它们是否可以发送全屏通知。为了获得发送全屏通知的用户权限,应用可以使用 ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT
来启动管理全屏 Intent 设置,如图 1 所示
图 1. 用于启用应用发送全屏 Intent 的 UI。
管理全屏 Intent 设置位于设置菜单中的特殊应用访问权限下。用户可以使用此 UI 在需要时撤销此权限。
OEM 要求
在 Android 14 中,默认情况下启用应用的 FSI 权限。OEM 必须指定哪些应用符合 FSI 权限的条件。OEM 必须确保第三方应用商店使用 PackageInstaller.SessionParams
为其应用设置 FSI 权限的初始授予状态,特别是使用 PERMISSION_STATE_DEFAULT
、PERMISSION_STATE_DENIED
和 PERMISSION_STATE_GRANTED
参数。
验证
使用 NotificationFullScreenIntentVerifierActivity.java
中的 CTS Verifier 测试和 NotificationManagerTest.java
中的 CTS 测试来验证 FSI 限制。
手动测试
按照以下步骤手动测试应用上的 FSI 限制
- 在应用的
AndroidManifest.xml
文件中声明USE_FULL_SCREEN_INTENT
。 - 使用
ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT
来管理设置以打开或关闭 FSI。 - 在您的测试手机上,手动切换全屏通知的用户权限,如图 1 所示。
- 发送 FSI 通知。
- 验证以下 FSI 权限和显示模式组合下全屏通知的外观
FSI 权限 | 解锁屏幕 | 锁屏 | 熄屏 | 息屏常显 (AOD) |
用户已授权 | 带有药丸按钮的持久性浮动通知 (HUN) | 启动 FSI | 启动 FSI | 启动 FSI |
用户已拒绝 | 带有药丸按钮的 HUN,持续 60 秒 | 带有药丸按钮的 HUN 在列表中首先显示 60 秒 | AOD 开启,显示带有药丸按钮的 HUN,持续 60 秒 | 带有药丸按钮的 HUN,持续 60 秒 |