1. 概述
AmLink 平台自带3行X 3列的键盘矩阵接口,加上连home key和power key,默认支持11个按键.
2. 键盘映射关系修改
当有按键按下的时候,kernel驱动上报的键值是固定的,对应关系如下:
kcol0 / krow0 => 115 (对应Linux的 KEY_VOLUMEUP, 115)
kcol0 / krow1 => 212 (对应Linux的 KEY_CAMERA,212)
kcol0 / krow2 => 114 (对应Linux的 KEY_VOLUMEDOWN,114)
kcol1 / krow0 => 158 (对应Linux的 KEY_BACK,158)
kcol1 / krow1 => 139 (对应Linux的 KEY_MENU,139)
kcol1 / krow2 => 231 (对应Linux的 KEY_SEND,231)
kcol2 / krow0 => 107 (对应Linux的 KEY_END,107)
kcol2 / krow1 => 228 (对应Linux的 KEY_POUND,20b)
kcol2 / krow2 => 227 (对应Linux的 KEY_STAR,20a)
home key (对应Linux的 KEY_HOME , 102)
power key (对应Linux的 KEY_HOME , 116)
上面的键值经过映射才会最终上报到应用程序,映射关系的定义在/system/usr/keylayout/mtk-kpd.kl文件里。
我们可以 修改该文件来修改键值的映射关系。
修改home key为例:
我们想把home kye重映射为F2 键, 步骤如下
a. 用adb 把mtk-kpd.kl文件导出来:adb pull /system/usr/keylayout/mtk-kpd.kl 建议先备份下。
b. 用文本编辑器打开该文件,搜索102 字符串,该字符串所在行默认是如下内容
key 102 HOME
把最后一栏的HOME修改为F2,修改后如下:
key 102 F2
然后保存,再adb push该文件到手机: adb push mtk-kpd.kl /system/usr/keylayout/mtk-kpd.kl 重启即可。
(如果提示没有权限请先执行adb remount)
以kcol0/krow0为例:
我们缺省定义kcol0/krow0(驱动键值115)对应的是“音量+”键,现想改为F1 键, 步骤如下
a. 用adb 把mtk-kpd.kl文件导出来:adb pull /system/usr/keylayout/mtk-kpd.kl 建议先备份下。
b. 用文本编辑器打开该文件,搜索115 字符串,该字符串所在行默认是如下内容
key 115 VOLUME_UP
把最后一栏的VOLUME_UP修改为F1,修改后如下:
key 115 F1
然后保存,再adb push该文件到手机: adb push mtk-kpd.kl /system/usr/keylayout/ mtk-kpd.kl 重启即可。
(如果提示没有权限请先执行adb remount)
3. 附录
Android 现有按键定义:
https://developer.android.com/reference/android/view/KeyEvent.html
版本: 01
制作人:彭浩强
发布日期: 2016-09-22