全屏意图限制

为了防止广告垃圾邮件和凭据网络钓鱼,从 Android 14 开始,只能向提供通话和闹钟功能的应用授予发送全屏通知的默认USE_FULL_SCREEN_INTENT权限。

对于 Android 14 上安装的所有应用,默认启用USE_FULL_SCREEN_INTENT权限。安装后,Google Play 商店会撤销不具备呼叫或闹钟功能的应用程序的全屏意图 (FSI) 权限。

对于安装在运行低于 Android 13 版本的手机上的应用, USE_FULL_SCREEN_INTENT权限默认保持启用状态。

用户权限

在Android 14中,应用程序可以使用NotificationManager#canUseFullScreenIntent()来检查是否可以发送全屏通知。为了获得用户发送全屏通知的权限,应用程序使用ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT来启动管理全屏意图设置,如图 1 所示:

fsi-ui

图 1.用于使应用程序能够发送全屏意图的 UI。

管理全屏意图设置位于“特殊应用程序访问”下的“设置”菜单中。通过此 UI,用户可以根据需要撤销此权限。

OEM要求

在 Android 14 中,默认启用应用程序的 FSI 权限。 OEM 必须指定哪些应用程序有资格获得 FSI 权限。 OEM 必须确保第三方应用程序商店使用PackageInstaller.SessionParams为其应用程序设置 FSI 权限的初始授予状态,特别是使用PERMISSION_STATE_DEFAULTPERMISSION_STATE_DENIEDPERMISSION_STATE_GRANTED参数。

验证

使用NotificationFullScreenIntentVerifierActivity.java中的CTS Verifier 测试和NotificationManagerTest.java中的CTS 测试来验证FSI 限制。

手动测试

请按照以下步骤手动测试应用程序上的 FSI 限制:

  1. 在应用的AndroidManifest.xml文件中声明USE_FULL_SCREEN_INTENT
  2. 使用ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT管理打开或关闭 FSI 的设置。
  3. 在您的测试手机上,手动切换全屏通知的用户权限,如图 1 所示。
  4. 发送 FSI 通知。
  5. 验证以下 FSI 权限和显示模式组合的全屏通知的外观:
FSI 许可解锁屏幕锁定屏幕离屏常亮显示 (AOD)
由用户授予带药丸按钮的持续提醒通知 (HUN)启动FSI启动FSI启动FSI
被用户拒绝HUN 带药丸按钮 60 多岁带有药丸按钮的 HUN 在 60 年代的列表中排名第一AOD 打开,显示带有药丸按钮的 HUN 60 秒HUN 带药丸按钮 60 多岁