我希望我的应用程序支持键盘快捷键。许多设备,例如Asus Transformer
具有Ctrl键的外部键盘(在 API 级别 11 上可用)。我编写了一些代码,以检查Ctrl密钥是否在模拟器中有效:
@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);
}
不幸的是,它在模拟器中不起作用,我无法在真实硬件上检查它。
我有两个问题:
1. 它可以在设备上运行Asus Transformer
吗?
2. 为什么Ctrlkey在模拟器中不起作用?
编辑:我试图找到我的问题的答案或解决方案,但谷歌和 SO 都没有帮助。