为了防止广告垃圾邮件和凭据网络钓鱼,从 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 所示:
图 1.用于使应用程序能够发送全屏意图的 UI。
管理全屏意图设置位于“特殊应用程序访问”下的“设置”菜单中。通过此 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 多岁 |