Quiero desactivar por completo los tres botones en pantalla (Atrás, Inicio, Recientes) y cualquier otro botón de hardware. Soy consciente de que no puedo hacer esto desde la aplicación ya que sería una gran falla de seguridad. ¿Cómo le haría esto a un dispositivo suponiendo que tengo el dispositivo a mano? Obtenga acceso a la raíz y luego, ¿cómo iría esto?
PD: lo que estoy tratando de hacer es que la aplicación se ejecute en mi tableta en un quiosco y no quiero que los usuarios presionen ningún botón.
La pantalla completa tiene una función (de pago) en la que puede ocultar automáticamente las barras del sistema en ciertas aplicaciones y mostrarlas en otras aplicaciones, pero hay una versión gratuita sin la automatización.
Alternativamente, puede ocultarlos completamente sobre ADB ( fuente ) con:
adb shell
su
pm disable com.android.systemui
O (si está escribiendo su propia aplicación) puede usar este código ( fuente ):
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();
}
}
Kiosk Browser Lockdown también tiene una función en la que puede desactivar todos los cuadros de diálogo del sistema (volumen, pulsación prolongada de encendido, etc.)
Usando Xposed Framework y Xposed Additions, puede reasignar cualquier botón a cualquier acción y, en su caso, a 'Sin acción'.
Combinando esto para deshabilitar todos sus botones de hardware con esta respuesta , y logrará lo que desea.
Abre la aplicación y sigue estos pasos: