Usted puede controlar los eventos clave desde un punto de vista o, en general, para toda su aplicación:
OnKey
manija de un Vista:
public boolean onKey(View v, int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_ENTER:
/* This is a sample for handling the Enter button */
return true;
}
return false;
}
Recuerde poner en práctica OnKeyListener y para establecer su oyente YourView.setOnKeyListener(this);
La segunda posibilidad sería:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_MENU:
/* Sample for handling the Menu button globally */
return true;
}
return false;
}
También puede echar un vistazo a onKeyUp
.
de recursos: http://developer.android.com/reference/android/view/View.html
Y aquí se puede ver una lista con todas KeyEvents
Tenga en cuenta que esto no funciona para todas las claves. HOME definitivamente no se puede atrapar de esta manera, y END_CALL no puede - Me olvido de eso. Además, si desea interceptar el botón ATRÁS, es mejor que implemente onBackPressed() en los nuevos SDK de Android, aunque eso no funciona en los teléfonos más antiguos. – CommonsWare
END_CALL tampoco puede ser interceptado por la aplicación. Tenga en cuenta también que el póster original parece querer interceptar claves antes de que se entreguen a otra aplicación, lo que no es posible para ninguna clave. – hackbod
Además, no es que el botón END_CALL del hardware ni siquiera exista en algunos teléfonos, como el Motorola Droid y el Nexus One, por lo que hacer algo especial con este botón probablemente no sea una buena idea. –