自定义键盘快捷键

Krz*_*iec 7 keyboard shortcuts android keyboard-shortcuts ctrl

我希望我的应用程序支持键盘快捷键.许多设备,例如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);
}
Run Code Online (Sandbox Code Playgroud)

不幸的是它在模拟器中不起作用,我无法在真实硬件上检查它.

我有两个问题:
1.它会在设备上运行Asus Transformer吗?
2.为什么Ctrl密钥在模拟器中不起作用?

编辑:我试图找到问题的答案或解决方案,但Google和SO都没有帮助.

vAr*_*rDo 1

1. 它可以在像 Asus Transformer 这样的设备上使用吗?

我已经用物理键盘(华硕的标准扩展坞)检查了我的华硕 Transformer TF101 ,您的代码工作正常。我认为您可以毫无问题地使用它。

2. 为什么CTRL键在模拟器中不起作用?

查看可以映射的按钮列表(例如使用emulator -keyset),我认为当前版本的模拟器不支持直接Ctrl键映射,所以你在这里运气不好。