我希望我的应用程序支持键盘快捷键。许多设备,如华硕变形
,都有外部键盘,其中包含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. 为什么在模拟器中 Ctrl 键不起作用?
编辑:我尝试寻找问题的答案或解决方案,但谷歌和stackoverflow都没有帮助到我。