除了 DELETE 和 ENTER (可能是其他人)之外,我的代码没有报告任何关键事件,但它应该报告所有密钥。我有另一个使用dispatchKeyEvent的应用程序,它工作正常。我尝试将targetSDK,buildAPI和最小值匹配到该应用程序,以防它是其他地方提到的api bug,但这些似乎没有任何区别。自从将AndroidSDK更新为4.4后,我还没有构建其他应用程序。
我有什么遗失的吗?
public boolean dispatchKeyEvent(KeyEvent event) {
Log.e("TEST","test " + " "+event.getKeyCode());
return super.dispatchKeyEvent(event);
}
现在↑
对大多数键(字母,制表符等)没有任何作用答案 0 :(得分:0)
来自KeyEvent
文档:
由于软输入法可以使用多种创造性的输入文本方式,因此无法保证软键盘上的任何按键都会产生关键事件:这由IME自行决定,事实上发送此类事件是泄气。您永远不应该依赖于在软输入方法上接收任何键的KeyEvent。特别是,默认软件键盘永远不会向任何针对Jelly Bean或更高版本的应用程序发送任何键事件,并且只会将删除和返回键的某些按键发送给目标为Ice Cream Sandwich或更早版本的应用程序。请注意......
所以你永远不应该期望获得关键事件,因为用户可以运行他们想要安装的任何不同的键盘,并且这些键盘可能会也可能不会将事件传递给被捕获。
如果您确实获得了关键事件,则会违反Google的建议。