web-dev-qa-db-fra.com

Masquer la barre d'état sur Sandwich à la crème glacée Android

Je travaille dans un lanceur pour Android ICS mais j'ai un problème avec les tablettes.

Je ne peux pas cacher la barre d'état. Je l'ai essayé dans Android 2.3.X et c'est bon. Le problème n'apparaît qu'avec Android 4.0.

Comment puis-je le cacher?

13
NachoMV

Vous ne pouvez pas vous débarrasser de la barre système des tablettes. Vous pouvez pouvez vous débarrasser de la barre de navigation et de la barre d’état sur les téléphones. Veuillez lire la section "Contrôles de visibilité de l'interface utilisateur du système" de les notes de publication du SDK d'Android 4.0 .

5
CommonsWare

Vous ne pouvez pas obtenir 100% vrai plein écran dans Android 4.0.

Utilisez ce qui suit pour assombrir la barre de notification (barre d'état, barre système, par exemple) 

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

Et utilise ceci pour le cacher 

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

Et, si je me trompe, vous essayez d’atteindre un "mode kiosque". Vous pouvez obtenir un peu d'aide avec une application nommée "surelock". Ceci bloque toutes les actions "maison" et "retour".

Ce n’est pas encore parfait, mais c’est peut-être ce que nous pouvons réaliser de mieux avec Android ICS.

11
BladeLeaf

Il est possible de masquer la barre d'état sur un appareil Android rooté. Le programme Hidebar fait cela en tuant le processus systemui. Le programme est open source, vous pouvez donc tout lire à ce sujet dans code source .

Voir http://ppareit.github.com/HideBar/ .

7
ppareit

Je sais que ma réponse arrive un peu tard, mais après avoir rassemblé des informations provenant de divers endroits, je suis tombé sur cette idée, qui fonctionne UNIQUEMENT SUR DES APPAREILS ROTATIFS:

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

}

Cela devrait éliminer la barre inférieure de tout périphérique enraciné et le transformer en mode "kiosque".

4
Wildcopper

Pour masquer la barre d'état et la barre de navigation dans Android 4.0, nous devrions utiliser le code ci-dessous:

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

S'appuyant sur la réponse de ppareit. 

Vous ne pouvez pas masquer la barre de navigation sur la plupart des appareils en stock. Cependant, il existe un moyen de contourner le problème si vous enracinez le périphérique est une option. Voici les étapes pour une solution:

  1. Périphérique racine

  2. Installez et exécutez Busybox (requis pour tirer pleinement parti des périphériques enracinés)

  3. Installer HideBar à partir d'une ressource

Dans HideBar, il existe une option pour exécuter en mode «Kiosque», dans lequel il n'y a aucun moyen de ré-afficher la barre de navigation. Inutile de dire que vous avez vraiment besoin d’être prudent avec ceci .

1
ılǝ