Quiero que mi aplicación sea compatible con los métodos abreviados de teclado. Muchos dispositivos, como Asus Transformer
tienen un teclado externo que tiene tecla Ctrl (disponible en API nivel 11). He hecho algo de código, para comprobar si Ctrl obras clave en emulador:Métodos abreviados de teclado personalizados
@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);
}
Por desgracia, no funciona en el emulador y no puedo comprobar que el hardware real.
Tengo dos preguntas:
1. ¿Funcionaría en el dispositivo como Asus Transformer
?
2. ¿Por qué Ctrl tecla no funciona en el emulador?
EDIT: He intentado encontrar una respuesta o solución a mi problema, pero ni Google ni SO me han ayudado.
no hay tecla CTRL en la mayoría de los dispositivos (al menos no en la mayoría de los teclados suaves) – njzk2
Pero, ¿qué pasa con los teclados de hardware con la tecla CTRL? – RedScorpio