0

我无法从 /dev/input/event1 获取关键事件。我能够从其输出中过滤掉的是来自事件代码 53 和 54 的绝对 X 和 Y 触摸坐标。我很困惑为什么在我的软键盘上键入时没有事件代码 1 的输出。我想知道哪个关键用户按下了,压力有多大。希望你能理解我的问题。

我在植根三星 Galaxy S4。

4

1 回答 1

0

因为软键盘不能那样工作。它不是操作系统的一部分,它是一个应用程序。所以键盘应用程序将被赋予触摸事件,它会调用 java 函数来告诉主应用程序按下了什么。按下后根本不经过硬件输入通道。操作系统永远不知道什么键在哪里。

大多数键盘甚至不生成按键事件——它们通过 commitText 一次生成单词。

基本上,你不能以你想要的方式做你想做的事。在不改变操作系统的情况下知道按下了哪些键的唯一方法是在 InputConnection 的另一侧处理来自 InputMethodService(键盘)的命令。

于 2016-09-07T16:16:10.357 回答