Ocultar barra de sistema en tabletas

En mi Tablet, tiene la siguiente barra para controlar, volver a casa, etc. (¿No conozco el nombre correcto, la barra de estado, la barra de control, la barra de acciones u otra)?

En el progtwig, utiliza el siguiente método para tener una pantalla completa.

requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); requestWindowFeature(Window.PROGRESS_INDETERMINATE_OFF); 

Pero no sé por qué el bar todavía está aquí. Por eso, no puedo tener el tamaño de pantalla correcto.

¿Quién puede decirme cómo eliminarlo?

El bar

En Tablets con Android 4+, no es posible ocultar la barra de sistema / navegación .

De la documentación ( Controles para la sección de visibilidad de la interfaz de usuario del sistema ):

SYSTEM_UI_FLAG_HIDE_NAVIGATION es un nuevo indicador que solicita que la barra de navegación se oculte por completo. Tenga en cuenta que esto funciona solo para la barra de navegación utilizada por algunos teléfonos ( no oculta la barra del sistema en las tabletas ).

Sin embargo, puede intentar atenuar la barra del sistema como se hace a veces durante el juego y la reproducción de video.

El indicador SYSTEM_UI_FLAG_LOW_PROFILE reemplaza al indicador STATUS_BAR_HIDDEN. Cuando está configurado, este indicador habilita el modo “perfil bajo” para la barra del sistema o de navegación. Los botones de navegación se atenúan y otros elementos en la barra del sistema también se ocultan. Habilitar esto es útil para crear juegos más inmersivos sin distracción para los botones de navegación del sistema.

Parece que hay una bandera INDOCUMENTADA para esto:

 yourGreatView.setSystemUiVisibility(8); 
  • no hay pie de página negro (barra de sistema “oculta”)
  • cambia el tamaño de la vista si aparece el teclado (sin entradas superpuestas)

Verificado en Android 4.1.2 (API 16)
Verificado en Android 4.1.1 (API 16)
Verificado no funciona en Android 4.0.4 (API 15)

(todas las tabletas)

Una opción muy nuclear es simplemente eliminar el SystemUI.apk de / system / app /. Pero advirtiendo esto, lo eliminará completamente de la tableta. Estoy haciendo esto en una tableta que estoy usando para un kiosco en el panel frontal, luego configuro la tableta para arrancar en mi aplicación.

En Android 4.4 y versiones posteriores, puedes ocultar completamente la barra de navegación y mantenerla oculta mediante una combinación de pantalla completa e inmersión:

 @Override protected void onResume() { super.onResume(); View decorView = getWindow().getDecorView(); decorView.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_STICKY); } 
 public class Utils { public static void hideNavigations(Activity context) { View decorView = context.getWindow().getDecorView(); decorView.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_STICKY); } 

}

En tu actividad:

 @Override protected void onResume() { super.onResume(); Utils.hideNavigations(this); } 

Como otras personas dicen, use el comando “pm disable com.android.systemui” en modo raíz, para que el siguiente código ejecute este comando en su aplicación de Android, solo llame al siguiente método, su tableta debe ser rooteada.

 private void hideNavigationBar(){ try { Process process = Runtime.getRuntime().exec("su"); DataOutputStream os = new DataOutputStream(process.getOutputStream()); os.writeBytes("pm disable com.android.systemui\n"); os.flush(); os.writeBytes("exit\n"); os.flush(); process.waitFor(); ////////////////////////////////////// } catch (InterruptedException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } 

Este código oculta la barra de navegación en el sistema android, para reaparecer la barra del sistema use “pm enable com.android.systemui” en lugar de “pm disable com.android.systemui” en el código anterior.

Como la barra del sistema se usa para navegar en Android, no hay una manera fácil de lograr esto, puedes cambiar / atenuar los controles:

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

Pero puede obtener el tamaño de la pantalla sin el systembar (no estoy seguro de qué versión, creo que 3.1)

 Method rawW = Display.class.getMethod("getRawWidth"); Method rawH = Display.class.getMethod("getRawHeight"); int width = (Integer)mGetRawW.invoke(dp); int height = (Integer)mGetRawH.invoke(dp); 

Si su aplicación tiene acceso de root también hay una forma de lograrlo: http://ppareit.github.com/HideBar/

No puede ocultarlo, pero simplemente puede desactivarlo, excepto en casa. Prueba este enlace . Usando SYSTEM_UI_FLAG_LOW_PROFILE puede atenuar la barra de su sistema y usar onWindowFocusChanged() puede tomar el foco y colapsarlo.

Debajo del código funcionó para mí:

Puedes escribirlo en Crear () o en Reanudar (si es necesario)

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