Полноэкранный режим на Android: быстрое руководство

Короткий ответ: включите иммерсивный режим — через настройки телефона (быстрые настройки или системные опции), или через ADB для принудительного разворачивания приложений; разработчики должны использовать WindowInsets/WindowInsetsController, чтобы корректно работать с вырезами и навигацией. Ниже — практичные шаги для пользователей и для разработчиков.

Быстрые способы для обычных пользователей

  1. Быстрые настройки
  • Откройте приложение, опустите шторку уведомлений дважды и найдите значок "Полный экран / Иммерсивный режим" (доступно в MIUI, One UI, ColorOS). Включите — скрываются навигация и статус-бар.

В некоторых прошивках двойной свайп по шторке открывает дополнительную панель с переключателем "Полный экран".

  1. Системные настройки
  • Настройки > Экран > Полный экран / Расширенный экран — разрешите конкретным приложениям использовать весь экран.
  • Навигация: Настройки > Система > Жесты > Скрыть панель навигации (или Дисплей > Навигационная панель на Samsung).
  1. Для вырезов (notches)
  • Настройки > Дисплей > Экранные вырезы / Вырезы — выберите "Развернуть под вырез" или "Скрыть вырез". Название опции зависит от производителя.
  1. Фирменные игровые режимы
  • Game Booster / Игровой режим на Xiaomi, Samsung и др. часто автоматически разворачивают игры под вырезы и отключают панели.

Иммерсивный режим через ADB (без рута)

Когда приложение не поддерживает полноэкранный режим, можно принудительно включить его через ADB.

Подготовка:

  • Включите Параметры разработчика: Настройки > О телефоне > 7 раз тап по "Номер сборки".
  • Включите Отладку по USB.

Команды (подключите телефон к ПК с platform-tools):

  • Развернуть все приложения полностью: adb shell settings put global policy_control immersive.full=*
  • Развернуть только одно приложение: adb shell settings put global policy_control immersive.full=com.example.app (замените com.example.app на пакет приложения)
  • Сбросить: adb shell settings put global policy_control null

Как узнать пакет приложения:

  • В терминале: adb shell pm list packages | grep часть_названия
  • Или посмотреть идентификатор в настройках приложения / URL Play Market (последняя часть).

После перезагрузки некоторые устройства сбрасывают настройки policy_control. Автоматизируйте команду через скрипт или Tasker/терминал на ПК, если нужно постоянно.

Для разработчиков: корректная работа с вырезами и барами

  • Используйте WindowCompat и WindowInsetsController (Android 11+ / Jetpack WindowInsets):
    • WindowCompat.setDecorFitsSystemWindows(window, false)
    • val controller = window.insetsController; controller?.hide(WindowInsets.Type.systemBars())
    • Учитывайте displayCutout и безопасные отступы: WindowInsets.getInsets(WindowInsets.Type.statusBars() | WindowInsets.Type.navigationBars())
  • Для игр и медиаплееров выставляйте флаги только при необходимости и возвращайте состояние при выходе, чтобы уведомления и навигация оставались доступными.

Частые ошибки

  • "Панель возвращается": отключите в Параметры разработчика опцию автопоказа баров и проверьте, не вызывает ли поведение жесты ОС.
  • "Черные полосы вокруг выреза": приложение вынудительно использует letterbox. Проверьте настройки "Экранные вырезы" и разрешение/соотношение в настройках разработчика.
  • "ADB не сработал": убедитесь, что устройство разрешило отладку по USB и вы используете актуальные platform-tools.

FAQ

  • Нужно ли рутать телефон? Нет — все описанные способы работают без рута.
  • Развернётся ли YouTube/Netflix полностью? Некоторые приложения принудительно ограничивают контент (DRM/letterbox); ADB может помочь, но не всегда.
  • Можно ли вернуть старое поведение? Да: выполните сброс policy_control (см. выше) или отключите иммерсивный режим в быстрой панели.

Если одно приложение упрямо не разворачивается, оптимальный путь — попросить разработчика добавить поддержку полноэкранного отображения или применить ADB-решение для конкретного пакета.