2012-03-15 19 views

Respuesta

5

No puede deshacerse de la barra del sistema en las tabletas. Usted puede ser capaz de deshacerse de la barra de navegación y la barra de estado en los teléfonos. Lea la sección "Controles para la visibilidad de la interfaz del sistema" de the Android 4.0 SDK release notes.

+0

Ok ... no puedo ocultarlo ... pero ¿puedo bloquear/anular las acciones de los botones? – NachoMV

+3

¿Por qué el reproductor de video está en pantalla completa y oculta la barra de estado? – NachoMV

+0

El reproductor de video no oculta la barra del sistema en las tabletas ICS. – CommonsWare

11

No se puede obtener el 100% de pantalla completa verdadera en Android 4.0.

la siguiente manera para atenuar la barra de notificaciones (aka. Barra de estado, barra del sistema)

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

y usar esto para esconderla

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

Y, si no me equivoco, usted está tratando de lograr un "modo kiosco". Puedes obtener un poco de ayuda con una aplicación llamada "surelock". Esto bloquea todas las acciones de "inicio" y "retroceso".

Todavía no es perfecto, pero esto puede ser lo mejor que podemos lograr con Android ICS.

+1

Me gustaría saber cómo Surelock puede ocultar el botón Inicio y atrás para hacerlo dentro de mi aplicación. ¿Puede usted ayudar? – Pascal

+0

@Pascal SureLock reemplaza su iniciador predeterminado, por lo que cuando presiona los botones de volver o inicio, regresa a SureLock. También tienen una opción que busca procesos no incluidos en la lista blanca y los mata. –

7

Es posible ocultar la barra de estado en un dispositivo Android rooteado. El programa Hidebar hace esto al matar el proceso systemui. El programa es de código abierto, por lo que puede leerlo al respecto en el source code.

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

+0

NO intente esto en Android 4.0 ICS ya que SystemUI es responsable de casi todo y dará como resultado un comportamiento errático. Restablece el fondo de pantalla del sistema, elimina los botones inferiores del software, etc. – Tom

+1

la sugerencia de @ppareit funciona +1, pero uno debe familiarizarse con los riesgos involucrados –

+1

Gracias @ile. Las versiones más nuevas de HideBar tienen un método nuevo y más avanzado para ocultar el systembar. HideBar también es compatible con una interfaz que utiliza 'Intents', por lo que otras aplicaciones pueden pedir ocultar el systembar. Hay permisos agregados, para que el usuario sepa qué aplicaciones pueden ocultar el systembar. Si necesita esto en su propia aplicación, es mejor que se ponga en contacto conmigo a través de la dirección proporcionada en el sitio de HideBar. – ppareit

1

Para ocultar la barra de estado y la barra de navegación en Android 4.0, debemos utilizar código de abajo:

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

Sobre la base de la respuesta de ppareit.

No puede ocultar la barra de navegación en la mayoría de los dispositivos de almacenamiento. Sin embargo, hay un problema si rootear el dispositivo es una opción. Estos son los pasos para una solución:

  1. Root device

  2. Install and run Busybox (required for taking full advantage of rooted device)

  3. Install HideBar from resource

En HideBar hay una opción para ejecutarse en modo 'Quiosco', en que no hay forma de volver a mostrar la barra de navegación. Huelga decir que realmente debe tener cuidado con este.

4

sé que mi respuesta llega un poco tarde, pero después de ensamblar información de varios lugares, se me ocurrió esto, que funciona sólo los dispositivos EN ROOTED:

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

} 

Esto debería eliminar la barra inferior en ningún arraigado dispositivo y convertirlo en modo "kiosco".

Cuestiones relacionadas