Fácil manera de ocultar la barra del sistema en Android ICS

Le daré a mis tablets ICS para que los usuarios completen una encuesta por lo que me gustaría que el usuario trabajara con mi aplicación solamente. No deben ser capaces de cambiar a la pantalla de inicio, pulse los botones de nuevo, etc, por lo que me gustaría ocultar la barra del sistema por completo.

Mi tablet está enraizado y sé que alguna aplicación como esta puede ayudarme, pero no necesito todas las funciones adicionales de esta aplicación.

He encontrado este tutorial que podría ayudarme, pero si puedo agregar el código para hacer mi propio, sería genial.

HideBar tiene un modo de quiosco especialmente para este caso de uso.

Una descarga gratuita está disponible en http://ppareit.github.com/HideBar/ . También puede encontrarlo en el mercado en https://play.google.com/store/apps/details?id=be.ppareit.hidebar .

Si desea incorporarlo en su propia aplicación de prueba / encuesta siempre puede ponerse en contacto con el desarrollador (consulte los enlaces de un correo electrónico). El código podría ser explicado o un Intent de hacer el escondite podría ser proporcionado.

Después de un montón de búsqueda en Internet, me las arreglé para obtener la barra del sistema para ocultar y aparecen en un dispositivo de 4,2 utilizando:

Esconder:

 Runtime.getRuntime().exec("service call activity 42 s16 com.android.systemui"); 

También puede utilizar el permiso SET_DEBUG_APP, en cuyo caso debe tener la aplicación firmada con la clave del sistema o instalada en el directorio / system / app /.

Mostrar:

 Runtime.getRuntime().exec("am startservice --user 0 -n com.android.systemui/.SystemUIService"); 

Como alternativa algunas personas han utilizado la opción -a (en lugar de -n), aunque esto estaba causando un error en mi dispositivo:

Error no encontrado; No se inició el servicio.

Para Android 4.4, hay una nueva función denominada modo inmersivo que oculta tanto las barras del sistema como las de estado. La interfaz de usuario del sistema es conmutada por el usuario mediante el uso de un golpe de borde desde la parte superior o inferior de la pantalla. Para más detalles echa un vistazo a:

http://developer.android.com/reference/android/view/View.html#setSystemUiVisibility(int)

Uso del nuevo modo IMMERSIVE en android kitkat

Por ejemplo:

 getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE) 

Marque este enlace: (requiere root) http://android.serverbox.ch/?p=306

Pregunta similar se publicó aquí también: ¿Hay una manera de ocultar la barra del sistema en Android 3.0? Es un dispositivo interno y estoy gestionando la navegación

O prueba HideBar http://ppareit.github.com/HideBar/

En realidad, simplemente puede poner la barra del sistema en el modo "luces apagadas", los botones de la barra del sistema y las notificaciones se atenúa.

 View v = findViewById(R.id.view_id); v.setSystemUiVisibility(View.STATUS_BAR_HIDDEN); 

Quiero añadir alguna información a las respuestas existentes esperando que sea útil para alguien.

Para obtener una verdadera pantalla completa trabajando en mis tabletas de bajo costo de China necesito editar un archivo ubicado en

 system/build.prop 

Reemplazar el texto

 ro.property.tabletUI=true 

con

 #ro.property.tabletUI=true 

(Comento la línea). Después de eso, puedo obtener una pantalla completa usando

 android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" 

Para cada actividad en el minfest.xml

Esta solución es buena sólo si vende tabletas con su aplicación y necesita privilegios de root para editar el system/build.prop . Así que no es una solución para todos , así que por favor no downvote esta pequeña contribución.

EDIT: Me di cuenta de que mis tabletas tienen botones de hardware (Inicio, Menú y espalda) en los marcos. Así que Android me permite ocultar la barra del sistema. He probado con otras tabletas que no tienen botones de hardware sin éxito .

Google pretende Android para ser utilizado sólo para los consumidores. Ellos integraron la barra de interfaz de usuario del sistema más firmemente en Android ICS (4.0) para evitar que la gente enraizar el dispositivo y matar a la barra de esa manera. Si intenta eliminar el proceso de la barra del sistema, se evitará que el sistema operativo arranque completamente.

Si desea restringir el acceso de los usuarios a la pantalla de inicio, no tiene suerte con Android ICS. Yo sugeriría encontrar una fabricación de tableta que precargará el dispositivo con Android 2.3. Ya sea que, o utilizar un Android Android 3.x dispositivo.

Si tiene la intención de usar Android para quioscos o dispositivos bloqueados, es mejor que apunte a un sistema operativo que es un poco más abierto.

He encontrado una solución que, en mi caso de uso, funciona como un encanto ocultando la barra de menús incluso en un dispositivo NO ROOTADO:

Establecer esta bandera

 layoutparams.flags = 0x80000000 | layoutparams.flags; 

A los parámetros de mi ventana de diseño simplemente hace el truco!

Aquí está el fragmento completo que usé:

  Window window = getWindow(); android.view.WindowManager.LayoutParams layoutparams = window.getAttributes(); layoutparams.flags = 0x80000000 | layoutparams.flags; window.setAttributes(layoutparams); 

En mi Actividad onCreate.

Para averiguar esto, he invertido la ingeniería de un Apk no-sistema que encontré que era de alguna manera capaz de hacer eso.

Según la documentación oficial:

http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS

Que "0x80000000" es el FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS introducido como una constante del sistema en Api nivel 21, y básicamente indica que "esta ventana es responsable de dibujar el fondo de las barras del sistema". Y puesto que no estoy dibujando manualmente ninguna barra del sistema, ninguna barra de menú se muestra.

Sólo he probado esto en un par de Moverio BT-200 con Android ICS 4.0.3 porque es el dispositivo que estoy trabajando actualmente y también porque ahora mismo no tengo otro dispositivo que ejecuta los niveles de Api antes de 19 bajo mis manos Para probarlo.

Hay una solución para desactivar la barra de menús (no ocultar) en la mayoría de todas las tabletas sin enraizamiento. Pero esto es un poco complicado, pero funciona limpio. Varias aplicaciones bien conocidas en el mercado en el momento de usar esta estrategia para lograr esta función de barra de menú deshabilitar para sus aplicaciones.

  • Concede privilegio de administrador (necesita una intervención de usuario para activar).
  • Establecer contraseña y bloquear el dispositivo mediante el perfil de administrador del dispositivo api programatically.
  • A continuación, cargue lo que las interfaces de usuario en la parte superior de la pantalla de bloqueo nativa. (Por supuesto, esto mostrará pantalla de bloqueo de fondo cada vez que se produzca una transición entre las actividades.Pero si la lógica se organiza bien, entonces será suave y menos notado por el usuario)
  • Cuando necesite habilitar de nuevo, restablezca la contraseña a "" usando resetPassword ("", 0) del objeto del gestor de directivas del dispositivo.

Para complementar las respuestas ya dadas, y en caso de que sea útil para alguien que necesite un comportamiento similar, existe este tutorial para dispositivos android 4.0 y superiores, que le dice cómo ocultar la barra de navegación y la barra de estado (que volverán a aparecer cuando el La pantalla se vuelve a tocar):

https://developer.android.com/training/system-ui/navigation.html

Me doy cuenta de que no es exactamente lo que necesita, pero puede ser útil para alguien que esté viendo este problema.

  • ¿Cómo puedo mostrar un ViewPager en modo de pantalla completa?
  • ¿Es posible desactivar la pantalla completa para youtube api en android?
  • Obtener la altura del teclado suave en modo de pantalla completa
  • Android: la barra de estado previene la pantalla completa
  • Immersive como característica en JB y ICS
  • Comportamiento extraño al usar WebView y RelativeLayout en pantalla completa
  • los vídeos de iframe no irán al modo de pantalla completa en la vista web de Android
  • ¿Cómo salir completamente de Immersive pantalla completa?
  • Ocultar los botones del conmutador de tareas de inicio de ICS
  • Cómo mostrar la barra de direcciones de nuevo después de salir de pantalla completa en Android
  • Android: Cómo tener dialogFragment a pantalla completa
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.