Есть ли способ скрыть системную / навигационную панель в Android ICS - PullRequest
20 голосов
/ 29 марта 2012

Я хотел бы расширить обсуждение, касающееся сокрытия системной / навигационной панели в нижней части экрана на планшетных устройствах Android Ice Cream Sandwich (4.0 и выше).

Уже есть ветка ( Есть ли способ скрыть системную панель в Android 3.0? Это внутреннее устройство, и я управляю навигацией ), чтобы скрыть панель на сотовых устройствах.Мои клиенты, однако, будут использовать новейшие устройства Ice Cream Sandwich и очень хотят спрятать панель внизу экрана.Их применение не предназначено для регулярного использования потребителями, и для них очень важно захватить весь экран, чтобы обеспечить их удобство.Насколько возможно скрыть эту панель - или, по крайней мере, переопределить поведение всех кнопок - без рутирования устройств или переписывания прошивки?

Ответы [ 12 ]

0 голосов
/ 26 марта 2013

поместите этот код в тег приложения в файле манифеста, чтобы скрыть панель вкладок по умолчанию

<Application
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" <!--
other parameters of application tag-->
>

, а затем создайте линейный или относительный макет и поместите его в макет своего занятия.

0 голосов
/ 07 февраля 2013

Если ваше устройство рутировано, этот код поможет вам скрыть системную панель на ICS (я тестировал ее на Samsung Galaxy Tab 2, и она отлично работает):

ArrayList<String> list = new ArrayList<String>();
Map<String, String> env = System.getenv();
for (String envName : env.keySet()) {
    list.add(envName + "=" + env.get(envName));
}

// Array containing the environment to start the new process in
String[] envp = (String[]) list.toArray(new String[0]);

String hidingCommand = "while [ true ]\n" + "do\n" + "killall com.android.systemui\n" + "done\n";
Runtime.getRuntime().exec(new String[] { "su", "-c", command }, envp);

myContext.sendBroadcast(new Intent("com.mycompany.myapp.ACTION_BARHIDDEN"));
...