Como ocultar la barra de botones de android

Método 1

Para ocultar la barra de botones de android es necesario tener permisos de root. El código fuente que hace eso es el siguiente.

try{
    //REQUIRES ROOT
    Build.VERSION_CODES vc = new Build.VERSION_CODES();
    Build.VERSION vr = new Build.VERSION();
    String ProcID = "79"; //HONEYCOMB AND OLDER
 
    //v.RELEASE  //4.0.3
    if(vr.SDK_INT >= vc.ICE_CREAM_SANDWICH){
        ProcID = "42"; //ICS AND NEWER
    }
 
 
 
    //REQUIRES ROOT
    Process proc = Runtime.getRuntime().exec(new String[]{"su","-c","service call activity "+ ProcID +" s16 com.android.systemui"}); //WAS 79
    proc.waitFor();
 
}catch(Exception ex){
    Toast.makeText(getApplicationContext(), ex.getMessage(), Toast.LENGTH_LONG).show();
}

Método 2

Editamos el archivo

system/build.prop

Reemplazamos el texto

ro.property.tabletUI=true

por

#ro.property.tabletUI=true

(He comentado la línea). Despues de esto, puedo obtener la pantalla competa utilizando

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

para cada activity en el manifest.xml

Método 3

Actualmente puedes poner la barra de sistema en modo apagada.

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

Método 4

Este método no quita la barra pero dificulta el salir de la aplicación.

Poner la aplicación a pantalla completa, editar onCreate() con lo siguiente.

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

Edita el manifest para que la actividad tenga lo siguiente

<intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.HOME" />
            <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

Para reemplazar el botón de retroceso, agregue este método.

	@Override 
	public void onBackPressed ()  { 
		// ignoramos el botón retroceder
		Log.d(TAG,"onBackPressed");
	    return ; 
	}

Además de esto, se puede cambiar el comportamiento de la aplicación modificando el método onPause para iniciar un AlarmManager.

Puede haber una solución más elegante, pero funciona.

Primero, cree la repetición de AlarmManager setupAlarm(segundos) (más detalles aquí) ,observa que se repetirá la alarma cada vez se pause la aplicación e iniciará la actividad.

AlarmManager mgr=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent i=new Intent(context, OnAlarmReceiver.class);
PendingIntent pi=PendingIntent.getBroadcast(context, 0, i, 0);
 
mgr.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), PERIOD, pi);

A continuación, cambiamos onPause estableciendo a 2 segundos la alarma, así que cuando alguien selecciona el botón de aplicaciones recientes en la barra de navegación, a los 2 segundos la “alarma” iniciará mainActivity.

Método 5

Existe una aplicación que hace todo, pero necesita permisos de root. Hide Bottom Bar