Atajos de teclado personalizados
Quiero que mi aplicación admita atajos de teclado. Muchos dispositivos, comoAsus Transformer
tener teclado externo que tengaCtrl clave (disponible en el nivel API 11). He hecho un código, para comprobar siCtrl Trabajos clave en emulador:
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if(Build.VERSION.SDK_INT>10 &&
event.getAction()==KeyEvent.ACTION_DOWN &&
event.isCtrlPressed()){
String actionType="NONE";
final int keyCode = event.getKeyCode();
switch(keyCode){
case KeyEvent.KEYCODE_C:
actionType = "COPY";
break;
case KeyEvent.KEYCODE_V:
actionType = "PASTE";
break;
case KeyEvent.KEYCODE_X:
actionType = "CUT";
break;
case KeyEvent.KEYCODE_R:
actionType = "REFRESH";
break;
case KeyEvent.KEYCODE_A:
actionType = "SELECT ALL";
break;
}
Toast.makeText(ctx, actionType, Toast.LENGTH_SHORT).show();
return true;
}
return super.dispatchKeyEvent(event);
}
Desafortunadamente, no funciona en el emulador y no puedo verificarlo en hardware real.
Tengo dos preguntas:
1. ¿Funcionaría en un dispositivo comoAsus Transformer
?
2. porqueCtrl ¿La tecla no funciona en el emulador?
EDITAR: traté de encontrar una respuesta o solución a mi problema, pero ni Google ni SO ayudaron.