Как отключить навигационную панель в Android LockScreen App, например, в CM Locker и на экране блокировки OS8
Я попытался установить systemUIView(View.GONE) и использовать полноэкранный режим с погружением. Но пользователи всегда могут вернуть панель навигации, коснувшись нижней части экрана. Приложения, о которых я упоминал выше, могут скрыть это без рута или установки запуска по умолчанию.
2 ответа
Хорошо, я наконец нашла sulotion и вот как это делается:
используйте SYSTEM_UI_FLAG_IMMERSIVE_STICKY, чтобы скрыть панель навигации, как указано ниже, вы можете поместить код внутри в резюме своей деятельности
Посмотреть decorView = getWindow(). GetDecorView(); int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY; decorView.setSystemUiVisibility(uiOptions);
Затем добавьте окно системных ошибок с помощью WindowManger и наложите его поверх чего-либо
Вы можете разместить этот необязательный вид где угодно, но если вы хотите сделать это, пока пользователи блокировали экран, добавьте этот флаг:
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED, WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
И вуаля
Ну, я никогда не достигал этого, но кажется, что вам нужно будет установить некоторые другие флаги, чтобы получить такой вид:
При использовании флага SYSTEM_UI_FLAG_IMMERSIVE он скрывает системные панели в зависимости от того, какие другие флаги пользовательского интерфейса вы установили (SYSTEM_UI_FLAG_HIDE_NAVIGATION, SYSTEM_UI_FLAG_FULLSCREEN или оба). Когда пользователь проводит внутрь в области системных панелей, системные панели снова появляются и остаются видимыми.
Вот фрагмент кода, который вы можете использовать для установки этих флагов:
// This snippet hides the system bars.
private void hideSystemUI() {
// Set the IMMERSIVE flag.
// Set the content to appear under the system bars so that the content
// doesn't resize when the system bars hide and show.
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 // hide nav bar
| View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
| View.SYSTEM_UI_FLAG_IMMERSIVE);
}
// This snippet shows the system bars. It does this by removing all the flags
// except for the ones that make the content appear under the system bars.
private void showSystemUI() {
mDecorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
}
Для получения дополнительной информации перейдите по ссылке Использование полного полноэкранного режима с веб-сайта разработчика Android.
Надеюсь, это поможет.