我有一个全屏OpenGL活动,我正试图从虚拟键盘获取输入。
我还没有对键盘输入做任何事情,只是将其记录下来,但我注意到了一些非常奇怪的行为。
如果我只按一个键,我会按下一个键,然后是一个没有标记的按键事件,每个人都很高兴。
如果我按住一个键来获得备用键,例如按住'h'来获得'&',我立刻得到一个键,然后键入'h'。当我放手时,我按下一个键进行换班,按下'&'键,键入'&'然后关键换班。
这六项活动中有五项完全符合预期。如果FLAG_CANCELED
已设置,则“h”的关键字有意义,但getFlags()
返回零且isCanceled()
返回false。密钥启动事件中似乎没有任何内容表明用户尚未实际释放密钥。
我与onKeyUp
和dispatchKeyEvent
的行为相同。
如果我立刻将手指从一个键滑到另一个键,我也会遇到同样奇怪的行为。我按下键并键入原始键,然后按下键并键入键,我结束幻灯片,我无法找出任何表明应该忽略第一个键的内容。
我的测试设备是运行Android 2.3.3的HTC Evo 4G,我正在使用API级别9进行构建。
更新
更奇怪...当键盘处于字母模式时,退格键会向下发送一个键并键入。在符号模式下,它只发送密钥。