Скрыть строку состояния на Android Ice Cream Sandwich - PullRequest
13 голосов
/ 16 марта 2012

Я работаю в лаунчере для Android ICS, но у меня проблема с планшетами.

Я не могу скрыть строку состояния. Я попробовал это в Android 2.3.X, и это нормально. Проблема появляется только с Android 4.0.

Как мне это скрыть?

Ответы [ 6 ]

11 голосов
/ 01 апреля 2012

Вы не можете получить 100% истинный полноэкранный режим в Android 4.0.

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

 getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);

И использоватьчтобы скрыть это

 getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

И, если я правильно понял, вы пытаетесь достичь "режима киоска".Вы можете получить небольшую помощь с приложением под названием "surelock".Это блокирует все действия «домой» и «назад».

Это все еще не идеально, но это может быть лучшим, что мы можем достичь с помощью Android ICS.

7 голосов
/ 09 июня 2012

Можно скрыть строку состояния на рутированном устройстве Android.Программа Hidebar делает это, убивая процесс systemui.Программа с открытым исходным кодом, поэтому вы можете прочитать все об этом в исходном коде .

См. http://ppareit.github.com/HideBar/.

5 голосов
/ 16 марта 2012

Нельзя избавиться от системной панели на планшетах.Вы можете иметь возможность избавиться от панели навигации и строки состояния на телефонах.Прочтите раздел «Элементы управления видимостью пользовательского интерфейса системы» заметки о выпуске Android 4.0 SDK .

4 голосов
/ 18 февраля 2013

Я знаю, что мой ответ приходит с некоторым опозданием, но после сбора информации из разных мест, я пришел с этим, который работает ТОЛЬКО НА УСТРОЕННЫХ УСТРОЙСТВАХ:

    private void    KillStatusBar()
{
    Process proc = null;

    String ProcID = "79"; //HONEYCOMB AND OLDER

    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH){
        ProcID = "42"; //ICS AND NEWER
    }

    try {
        proc = Runtime
                .getRuntime()
                .exec(new String[] { "su", "-c",
                        "service call activity "+ProcID+" s16 com.android.systemui" });
    } catch (IOException e) {
        Log.w(TAG,"Failed to kill task bar (1).");
        e.printStackTrace();
    }
    try {
        proc.waitFor();
    } catch (InterruptedException e) {
        Log.w(TAG,"Failed to kill task bar (2).");
        e.printStackTrace();
    }

}

Это должно устранить нижнюю полосу на любом рутированном устройстве и перевести ее в режим "киоска".

1 голос
/ 17 ноября 2012

Опираясь на ответ ppareit.

Нельзя скрыть панель навигации на большинстве стоковых устройств.Тем не менее, есть обходной вариант, если у вас есть возможность рутировать устройство.Вот шаги для одного решения:

  1. Корневое устройство

  2. Установите и запустите Busybox (требуется дляиспользование всех преимуществ рутированного устройства)

  3. Установить HideBar из ресурса

В HideBar есть опцияработать в режиме «Киоск», в котором нет возможности повторно отобразить панель навигации.Излишне говорить, что действительно нужно быть осторожным с этим .

1 голос
/ 22 сентября 2012

Чтобы скрыть строку состояния и панель навигации в Android 4.0, мы должны использовать код ниже:

LinearLayout layout = (LinearLayout)findViewById(R.id.layout);
layout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
...