Как скрыть кнопки «Домой», «Назад», «Переключатель приложений» и панель уведомлений?

Несколько слов для фона: Приложение будет использоваться на выставке. Он должен скрывать кнопки «Домой», «Назад», «Переключатель приложений» и панель уведомлений, чтобы пользователь не мог перейти к настройкам и т. Д.

Устройство: Samsung GT-N8000 Android 4.1.2 введите здесь описание изображения

Я пытался скрыть их с помощью SYSTEM_UI_FLAG_HIDE_NAVIGATION.

AndroidManifest.xml

android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen"

MainActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);

    View decorView = getWindow().getDecorView();
    int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_FULLSCREEN;
    decorView.setSystemUiVisibility(uiOptions);

    setContentView(R.layout.activity_main);
}

Приложение скрывает их при запуске. Всё хорошо. Но когда я касаюсь экрана, кнопки и панель уведомлений выходят в нижнюю часть экрана.

ОБНОВЛЕНИЕ: ПЫТАЛИСЬ РЕШИТЬ ЭТО С помощью onTouchEvent

@Override
public boolean onTouchEvent(MotionEvent event) {
    // TODO Auto-generated method stub
    View decorView = getWindow().getDecorView();
    int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_FULLSCREEN;
    decorView.setSystemUiVisibility(uiOptions);
    return true;
}

Результат: Тач->Навигация открывается, Тач->Навигация скрывается :( Как полностью (навсегда) скрыть кнопки и панель уведомлений?


person Joe Rakhimov    schedule 11.07.2014    source источник
comment
Я думаю, что это невозможно.   -  person Ahmed Nawaz    schedule 11.07.2014
comment
Может быть, проверить это. nexus7 .wonderhowto.com/how-to/   -  person Ahmed Nawaz    schedule 11.07.2014
comment
Можете ли вы попробовать добавить разрешение <uses-permission android:name="archos.permission.FULLSCREEN.FULL" /> в свое приложение для Android.   -  person Ahmed Nawaz    schedule 11.07.2014


Ответы (1)


Вам нужно использовать иммерсивный режим. См. документацию здесь: Документация по Android

Вам нужно добавить эту функцию:

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);

}

person AlonsoFloo    schedule 11.07.2014