我一直在编写一款主要由硬件键盘输入驱动的Android应用。我正在添加软键盘支持,但我还没到那里。但我离题了......
最初我正在检查传入我的OnKey函数的整数keyCode值对照KeyEvent类中的枚举。够简单......
但我需要知道用户是否按下了会产生>的键组合。符号。因此,我检查了是否按下了ALT并且传入了X keyCode ...但事实证明,不同手机上的不同按键会产生>符号。
现在,我正在检查KeyEvent的getUnicodeChar方法的值与Unicode字符的已知值。
我的问题已经解决了 - 但是有一种可接受的方式来进行角色检查吗?大多数人不需要ALT符号,或者大多数人使用的是跨设备标准的软件键盘?没有内置的Unicode字符枚举表(我知道,无论如何),这样代码也会变得更加丑陋。好奇!
答案 0 :(得分:0)
我相信你是正确的,因为检测哪个符号/替换键的唯一方法是查看unicode字符。
通常,人们只对主键感兴趣,因此KeyCode就足够了。
您不能依赖于使用的任何特定IME(软键盘)。另请注意,文本窗口小部件通过InputConnection访问通过IME输入的文本,因此它通常不会像硬件键盘那样使用KeyEvent。