Android onKeyUp()在某些模拟器上未正确调用



我叫布鲁诺。不幸的是,我的按键有问题。

问题:当我按下键盘上的任何键并保持按下时,函数onKeyUp((被调用而不松开那把钥匙正确的行为是:当我们按下一个键时,函数onKeyDown((被调用,当释放该键时,onKeyUp((被调用。

我测试了一些Android模拟器,只有其中一些出现了这个问题。我想使用Android Studio Emulator。例如,Bluestacks不会出现这种问题。我不知道为什么在一些模拟器上会出现这种情况。

这是我的代码,MainActivity.java:

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
Log.i("KEYTEST", event.toString());
return super.onKeyUp(keyCode, event);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
Log.i("KEYTEST", event.toString());
return super.onKeyDown(keyCode, event);
}

当我按下"D"键并保持按下状态时,日志将打印:日志图像

发生了什么?某些模拟器与葡萄牙语键盘结合使用有问题吗?

不要对字母使用onKeyUp和onKeyDown。大多数键盘不使用它们,它们通过InputMethodConnection的commitText((函数发送数据。这完全绕过了钥匙向上/向下系统。这些仅适用于实体按钮。比如音量按钮,或者通过蓝牙连接的硬件键盘。

最新更新