三星 Galaxy Note 有一支触控笔,当触控笔接触/离开屏幕时,我观察到一种奇怪的行为。
除了预期的一系列 SessionView.onTouchEvent 调用外,当触控笔触摸/离开屏幕时,还会收到 SessionView.onKeyDown/SessionView.onKeyUp 调用。SessionView.onKeyDown/SessionView.onKeyUp 调用的 KeyEvent 代码为 112 (KeyEvent.KEYCODE_FORWARD_DEL),扫描码 555。
在触控笔上按下/释放按钮也会导致 SessionView.onKeyDown/SessionView.onKeyUp 调用 KeyEvent 代码 114 (KeyEvent.KEYCODE_CTRL_RIGHT),扫描代码 544。
KeyEvent 的事件源报告为 257 (InputDevice.SOURCE_KEYBOARD),这使得这与键盘事件无法区分,并扰乱了我们应用程序中的键盘功能,因为手写笔触摸会产生意外的 DEL 按键。
我想知道是否有人可以进一步了解这种行为。它只是三星开发人员在 Android 2.3 上实现手写笔功能的专有黑客吗?什么是处理这个问题的可靠方法?
设备详情:
Device model: GT-N7000
Firmware version: 2.3.6
Kernel version: 2.6.35.7-N7000XXLA4-CL886827
se.infra@SEP-74 )
#2 SMP PREEMPT Thu Jan 12 21:15:11 KST 2012
Build number: GINGERBREAD.XXLA4