Есть ли способ скрыть системную панель в Android 3.0?Это внутреннее устройство, и я управляю навигацией - PullRequest
32 голосов
/ 24 февраля 2011

В Android 2.3 и ниже вы можете сделать приложение в полноэкранном режиме, а затем «взломать» кнопки меню / назад / поиска, просто вернув false onKeyDown () ... и зарегистрировав приложение в качестве домашней программы запуска по умолчанию,таким образом, нет выхода из приложения.

В Android 3.0 (Honeycomb) кнопки навигации (системная панель) всегда присутствуют, я бы хотел их скрыть.Возможно ли это?

К вашему сведению, я не публикую это приложение на Android Market.Это внутреннее приложение для устройств, которые будут использоваться внутри, мне нужно защитить устройство.

Ответы [ 11 ]

0 голосов
/ 09 декабря 2011

Хотя это не отвечает на вопрос о «блокировке» экрана, вы можете скрыть строку состояния, не будучи пользователем root, с помощью API setSystemUiVisibillity (уровень API 11).

Некоторый псевдокод:

public MyActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstance) {
        //...
        final View mainView = findViewById(R.id.you_main_view_id);
        mainView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);

        //Register a listener for when the status bar is shown/hidden:
        final Context context = getApplicationContext();
        mainView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener () {
            @Override
            public void onSystemUiVisibilityChange(int visibility) {
                if ((visibility == View.SYSTEM_UI_FLAG_VISIBLE)) {
                    //Do stuff here...pause the video/game?
                } else {
                    //Do other stuff here..resume the video/game?
                }
            }
        });
    }
}

Это будет скрывать строку состояния, пока пользователь не щелкнет по нижнему краю экрана, и в этом случае строка состояния отобразится (она получитчерез несколько секунд снова скрывается).

Убедитесь, что в манифесте вы указали targetSdkVersion = "11" или выше.

...