Многие производители смартфонов перестают использовать механические сенсорные клавиши в своих устройствах. Делается это ради экономии места и увеличения процента полезной площади лицевой стороны аппарата. При этом Android позволяет использовать экранные сенсорные клавиши управления. Чаще всего производители программного обеспечения используют возможность операционной системы скрывать данную навигационную панель при запуске полноэкранных программ и игр. Впрочем автоматически делается это далеко не всегда, особенно при использовании устаревшего софта. Мы расскажем как скрыть панель навигации на Android-устройствах.
На некоторых смартфонах Huawei, в частности Ascend D2, Mate, P6, и планшете Huawei Mediapad 10 FHD привычные сенсорные клавиши были заменены на виртуальные. Данное техническое решение определенно весьма интересно, однако существенным недостатком является использования части экрана для этой самой виртуальной панели навигации. Инженеры Хуавей нашли решение данной проблемы и реализовали возможность сворачивания виртуальных клавиш (Назад, Домой и Меню) в прошивках на базе Android 4.1.2.
К сведению, Google реализовали эту фишку лишь в Android 4.4 KitKat, а Huawei запретили ее использование в своих прошивках еще полгода назад.
Но благодаря тому, что данная возможность уже была реализована в прошивке, то её можно достаточно легко активировать.
Способ первый:
Для этого активации сворачивания панели данным способом необходимо, чтобы на вашем смартфоне были получены root права и установлен файловый менеджер, способный работать с системными папками, например, Root Explorer.
Способ второй:
Данный способ подходит тем, у кого нет возможности или желания получать root права на своем устройстве. Из необходимого софта понадобится только SQLite Database Editor.
При сбросе настроек на заводские, а также после обновления прошивки данные манипуляции придется выполнять повторно.
Возможность скрыть панель впервые была использована в Android 4.4 «KitKat». Но не все приложения или игры, особенно ранние, могут работать без панели управления. Поэтому вашему вниманию предлагается пара способов решения проблемы посредством сторонних приложений.
Он реализован с помощью программы GMD Full Screen Immersive Mode, достаточно прост, не требует Root-прав, но работает на Android версии «KitKat» и не всегда стабильно функционирует.
Алгоритм действий:
К недостаткам способа стоит отнести отсутствие экранной клавиатуры в полноэкранном режиме и не всегда корректную работу с некоторыми программами, но в основном приложение работает довольно хорошо.
Для реализации этого способа потребуется программка Ultimate Dynamic Navbar, инструмент Xposed Framework и открытый Root доступ к программному обеспечению планшета. Он является наиболее удобным, надежным и обладает высокой гибкостью настроек.
Алгоритм действий:
Остается только пожелать вам, дорогие пользователи, приятного времяпровождения в сети или за игрой, положительных эмоций от полного экрана и удовольствия от удачно реализованной затеи.
Я хотел бы расширить дискуссию о скрытии системы/панели навигации в нижней части экрана на планшетах Android Ice Cream Sandwich (4.0 и выше).
12 ответов
на корневых устройствах, я использую следующую команду adb
Adb shell pm disable com.android.systemui
чтобы скрыть навигационную панель навсегда. Чтобы снова показать его, запустите
adb shell pm enable com.android.systemuiпока он отлично работает для меня
Использование приведенного ниже кода - один из способов сделать это, чтобы скрыть навигацию.
GetWindow().getDecorView() .setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
Но проблема с вышеизложенным заключается в том, что он становится видимым, как только пользователь коснется экрана.
В Android Kitkat есть функция, называемая IMMERSIVE , которая скрывает панель уведомлений и навигацию. Он не отображается, даже если пользователь взаимодействует с экраном. Однако пользователь может сделать это видимым, прокручивая его сверху вниз. Ниже приведен код для его достижения.
//Initializew this in onCreate() View mDecorView = getWindow().getDecorView(); //Then call this function private void hideSystemUI() { mDecorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LOW_PROFILE | View.SYSTEM_UI_FLAG_IMMERSIVE); }
Однако в моем случае я никогда не хотел, чтобы панель навигации и уведомлений была видна, даже если пользователь перебирает верхнюю часть экрана. Я попробовал, и я смог добиться этого частично. То, что я сделал, было реализовано CountDownTimer , которое вызывало бы hideSystemUI() каждую секунду или около того. Я знаю, что это не лучший способ сделать это. Но у меня не было другого решения.
Если кто-то получит какие-либо, то, пожалуйста, дайте мне знать о том, как надолго скрыть навигацию и панель уведомлений:) Надеюсь, этот ответ поможет кому-то в будущем:)
Обновление - есть работа, которая может быть использована для таких случаев (ручная настройка приложения для клиента). Действительно, панель навигации не может быть удалена в рамках данной структуры.
Тем не менее, существует решение скрыть панель навигации, если для вас используется опция . Вот как:
В HideBar есть возможность запускаться в режиме "Киоск", в котором нет возможности повторно отобразить панель навигации. Излишне говорить, что вам действительно нужно быть осторожным с этим.
Применяемые риски:
удаление устройства
неправильная установка BusyBox, что может немного затруднительно, хотя вряд ли это приведет к потере информации.
войти в тупик, где вы не можете выйти из приложения. Например, если 1 ваш графический интерфейс не предоставляет опцию закрытия, 2 ваше приложение запускается автоматически при запуске, 3 HideBar не позволяет каким-либо образом повторно отображать панель навигации, а 4 HideBar скрывает панель навигации при запуске. это можно преодолеть, просто остановив/удалив ваше приложение из adb.
Вот и другие одинаковые вопросы:
EDIT: с 4.4 (19) вы можете использовать следующее, чтобы включить то, что называется "IMMERSIVE MODE". Он был введен для Google Cardboard vrtoolkit, но может использоваться в целом.
setSystemUiVisibility(View.SYSTEM_UI_FLAG_IMMERSIVE)
Из моих усилий кажется, что: setSystemUiVisibility (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) не работает на планшетах.
Он работает на смартфонах (протестирован с Nexus 4 Mako), но он снова появится на событии touch/click. Это также, похоже, фиксирует фокус на панели, заставляя вас дважды щелкнуть, чтобы вернуть фокус в представление.
Я пытаюсь найти способ захватить событие, которое на самом деле перерисовывает панель. Не повезло.
Будучи упрямым, я собираюсь загрузить код android os, запустите отладчик eclipse и перейдите в huntin. Это не ошибка. Навигационная панель имеет решающее значение для жизненного цикла приложения.
Я видел приложения, которые делают это (игры и т.д.), поэтому есть способ без rooting.
Вы не можете скрыть его, если вы не укоренились в устройстве. Но, конечно, есть обходное решение, которое может не соответствовать вашему требованию, но несколько известных приложений на рынке в настоящий момент используют эту стратегию для достижения этой запретной функции панели меню для своих приложений.