Ограничения полноэкранного намерения

Чтобы предотвратить рекламный спам и фишинг учетных данных, начиная с 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:

fsi-ui

Рис. 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 в вашем приложении:

  1. Объявите USE_FULL_SCREEN_INTENT в файле AndroidManifest.xml вашего приложения.
  2. Используйте ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT для управления настройками включения или выключения FSI.
  3. На тестовом телефоне вручную переключите разрешение пользователя на полноэкранные уведомления, как показано на рисунке 1.
  4. Отправьте уведомление FSI.
  5. Проверьте внешний вид полноэкранного уведомления для следующих комбинаций разрешений FSI и режимов отображения:
Разрешение ФСИ Разблокированный экран Заблокированный экран Выкл. экрана Всегда включенный дисплей (AOD)
Разрешено пользователем Постоянное хедз-ап-уведомление (HUN) с кнопками таблеток Запустить ФСИ Запустить ФСИ Запустить ФСИ
Запрещено пользователем HUN с пуговицами-таблетками для 60-х годов Венгр с кнопками-таблетками занимает первое место в списке за 60-е годы AOD включается, показывает HUN с кнопками таблеток в течение 60 секунд. HUN с пуговицами-таблетками для 60-х годов