Полноэкранный режим на Android: быстрое руководство
Короткий ответ: включите иммерсивный режим — через настройки телефона (быстрые настройки или системные опции), или через ADB для принудительного разворачивания приложений; разработчики должны использовать WindowInsets/WindowInsetsController, чтобы корректно работать с вырезами и навигацией. Ниже — практичные шаги для пользователей и для разработчиков.
Быстрые способы для обычных пользователей
- Быстрые настройки
- Откройте приложение, опустите шторку уведомлений дважды и найдите значок "Полный экран / Иммерсивный режим" (доступно в MIUI, One UI, ColorOS). Включите — скрываются навигация и статус-бар.
В некоторых прошивках двойной свайп по шторке открывает дополнительную панель с переключателем "Полный экран".
- Системные настройки
- Настройки > Экран > Полный экран / Расширенный экран — разрешите конкретным приложениям использовать весь экран.
- Навигация: Настройки > Система > Жесты > Скрыть панель навигации (или Дисплей > Навигационная панель на Samsung).
- Для вырезов (notches)
- Настройки > Дисплей > Экранные вырезы / Вырезы — выберите "Развернуть под вырез" или "Скрыть вырез". Название опции зависит от производителя.
- Фирменные игровые режимы
- 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-решение для конкретного пакета.