¿Cómo comprobar si los botones de la parte posterior / casera son botones del tacto o del hardware?

Estoy tratando de hacer un juego de serpiente. He estado probando el juego en mi Nexus 4, que tiene sus botones de regreso / inicio como botones táctiles, así que cuando quería a la actividad de pantalla completa los botones táctiles aparecerían sobre la actividad para eliminarlos Uso el siguiente código:

view.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); 

Pero cuando probé el juego en el teléfono de mi amigo sony ericson que tiene botones de hardware. Así que en su teléfono el borde inferior de la pantalla se extiende más hacia el área detrás de los botones. ¿Cómo arreglo eso?

Así es como obtengo el tamaño de la pantalla:

  DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); height = metrics.heightPixels; width = metrics.widthPixels; 

Estoy 99% seguro que son programmatically el mismo. Uno utiliza su resistencia eléctrica de los cuerpos para accionar la señal, el otro utiliza un interruptor mecánico. Es como un pomo de la puerta, puede ser redondo, o puede tener un mango. Si usted está hablando de una superposición de interfaz de usuario para imitar un botón real, que está bien escondido en el sistema operativo y en su nivel, será de nuevo el mismo programación. En el último caso, la analogía de perilla de puerta, ahora es una apertura automática 🙂

Pero para darle una solución .. hacer sus propios botones GUI en el ap y no dependen de hardware.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.