android - sirve - Atajos de teclado personalizados
teclado negro android (1)
1. ¿Funcionaría en un dispositivo como Asus Transformer?
He revisado mi Asus Transformer TF101 con un teclado físico (estación de acoplamiento estándar de Asus ) y su código funciona bien . Creo que puedes usarlo sin problemas.
2. ¿Por qué la tecla CTRL no funciona en el emulador?
Mirando la lista de botones que se pueden mapear (por ejemplo, usando emulator -keyset
) no creo que la versión actual del emulador sea compatible con la asignación directa de Ctrl
, por lo que no tiene suerte aquí.
Quiero que mi aplicación admita los atajos de teclado. Muchos dispositivos, como Asus Transformer
tienen un teclado externo que tiene la tecla Ctrl (disponible en API Nivel 11). He creado un código para verificar si la tecla Ctrl funciona en el 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 como Asus Transformer
?
2. ¿Por qué la tecla Ctrl no funciona en el emulador?
EDITAR: Intenté encontrar una respuesta o solución a mi problema, pero ni Google ni SO me ayudaron.