USB 键盘 - 在 android 中未获得相同的扫描码
USB keypad - Not getting same scan code in android
我有一个带有 0 to 9,*,#,+,-,CALL,CALLEND
键的 USB 键盘,我将它与 Android 板一起使用。
使用默认 android Generic.kl
文件,此小键盘为每个按下的键提供正确的输出(在文本框和 this application 中选中)。
根据上述申请,扫码如下,
CALL - META_SHIFT_ON | META_SHIFT_RIGHT_ON - scanCode:48 keyCode:30
KEYCODE_B
ENDCALL - META_SHIFT_ON | META_SHIFT_RIGHT_ON - scanCode:30 keyCode:29
KEYCODE_A
STAR - META_SHIFT_ON | META_SHIFT_RIGHT_ON - scanCode:9 keyCode:15
KEYCODE_8
POUND - META_SHIFT_ON | META_SHIFT_RIGHT_ON - scanCode:4 keyCode:10
KEYCODE_3
需要重新映射,我自定义的.kl内容如下,
key 2 1
key 3 2
key 4 3
key 5 4
key 6 5
key 7 6
key 8 7
key 9 8
key 10 9
key 11 0
key 12 VOLUME_DOWN
key 78 VOLUME_UP
key 30 ENDCALL
key 48 CALL
我已经放在/system/usr/keylayout/
现在进行此更改后,当我使用相同的测试应用程序检查扫描代码时,ENDCALL
按钮得到 scanCode:54
,之前是 30。
我对这种行为有以下疑问,
- 我对扫描码的理解是它们是特定于硬件的,无论 software/host 是什么,它每次都会提供相同的扫描码?我的意思是键盘的扫描码不会改变?这不会发生在这里。
- 我也尝试过在
/system/usr/keychars/
中添加文件 .kcm,但有或没有它的行为是相同的。我需要为此使用 .kcm
文件吗?
我有一个带有 0 to 9,*,#,+,-,CALL,CALLEND
键的 USB 键盘,我将它与 Android 板一起使用。
使用默认 android Generic.kl
文件,此小键盘为每个按下的键提供正确的输出(在文本框和 this application 中选中)。
根据上述申请,扫码如下,
CALL - META_SHIFT_ON | META_SHIFT_RIGHT_ON - scanCode:48 keyCode:30 KEYCODE_B
ENDCALL - META_SHIFT_ON | META_SHIFT_RIGHT_ON - scanCode:30 keyCode:29 KEYCODE_A
STAR - META_SHIFT_ON | META_SHIFT_RIGHT_ON - scanCode:9 keyCode:15 KEYCODE_8
POUND - META_SHIFT_ON | META_SHIFT_RIGHT_ON - scanCode:4 keyCode:10 KEYCODE_3
需要重新映射,我自定义的.kl内容如下,
key 2 1
key 3 2
key 4 3
key 5 4
key 6 5
key 7 6
key 8 7
key 9 8
key 10 9
key 11 0
key 12 VOLUME_DOWN
key 78 VOLUME_UP
key 30 ENDCALL
key 48 CALL
我已经放在/system/usr/keylayout/
现在进行此更改后,当我使用相同的测试应用程序检查扫描代码时,ENDCALL
按钮得到 scanCode:54
,之前是 30。
我对这种行为有以下疑问,
- 我对扫描码的理解是它们是特定于硬件的,无论 software/host 是什么,它每次都会提供相同的扫描码?我的意思是键盘的扫描码不会改变?这不会发生在这里。
- 我也尝试过在
/system/usr/keychars/
中添加文件 .kcm,但有或没有它的行为是相同的。我需要为此使用.kcm
文件吗?