Для предотвращения рекламного спама и фишинга учетных данных, начиная с Android 14, разрешение по умолчанию USE_FULL_SCREEN_INTENT
на отправку полноэкранных уведомлений может быть предоставлено только приложениям, которые предоставляют функции звонков и будильника.
Для всех приложений, устанавливаемых на Android 14, разрешение USE_FULL_SCREEN_INTENT
включено по умолчанию. После установки Google Play Store отзывает разрешение на полноэкранный режим (FSI) для приложений, не имеющих функций звонков или будильника.
Для приложений, установленных на телефонах под управлением Android 13 или ниже, разрешение USE_FULL_SCREEN_INTENT
остается включенным по умолчанию.
Разрешение пользователя
В Android 14 приложения могут использовать NotificationManager#canUseFullScreenIntent()
для проверки возможности отправки полноэкранных уведомлений. Чтобы получить разрешение пользователя на отправку полноэкранных уведомлений, приложения используют ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT
для запуска настройки «Управление намерениями полноэкранного режима», как показано на рисунке 1.
Рисунок 1. Пользовательский интерфейс, позволяющий приложениям отправлять полноэкранные намерения.
Параметр «Управление намерениями полноэкранного режима» находится в меню «Настройки» в разделе «Доступ специальных приложений» . С помощью этого интерфейса пользователи могут при необходимости отозвать это разрешение.
Требования OEM
В Android 14 разрешения FSI для приложений включены по умолчанию. Производители оригинального оборудования (OEM) должны указать, какие приложения имеют право на разрешения FSI. Производители оригинального оборудования (OEM) должны гарантировать, что сторонние магазины приложений устанавливают начальные состояния предоставления разрешений FSI для своих приложений с помощью PackageInstaller.SessionParams
, в частности, с помощью параметров PERMISSION_STATE_DEFAULT
, PERMISSION_STATE_DENIED
и PERMISSION_STATE_GRANTED
.
Проверка
Используйте тест CTS Verifier в NotificationFullScreenIntentVerifierActivity.java
и тест CTS в NotificationManagerTest.java
для проверки ограничений FSI.
Ручные тесты
Выполните следующие шаги, чтобы вручную проверить лимиты FSI в вашем приложении:
- Объявите
USE_FULL_SCREEN_INTENT
в файлеAndroidManifest.xml
вашего приложения. - Используйте
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-х годов |