MTK Android Driver :add a new key

xiaoxiao2021-02-28  156

参照:[FAQ04495][Keypad]How to add a new key on android ICS\ICS2 1.在DCT tool keypad list 文件增加新按键的选项 alps\mediatek\source\dct\Keypad_YuSu.cmp中添加新键,如SMS快捷键 KEY_SYM KEY_SMS KEY_0 2.打开DCT tool 在keypad矩阵中在相应定义的按键位中添加新按键,如SMS,然后Save 3.修改linux 键盘码文件input.h 由于preloader\uboot\kernel\factory 等情况分开使用,相应的文件路径下的input.h都应该修改为新按键增加键码值 kernel\include\linux\input.h bionic\libc\kernel\common\linux\input.h external\kernel-headers\original\linux\input.h external\qemu\linux_keycodes.h mediatek\plaform\mt6575\preloader\src\drivers\inc\linux\input.h Mediatek\plaform\mt6575\uboot\inc\linux\input.h 如KEY_SMS #define KEY_SMS 252 4.增加keypad layout文件键盘映射,linux和android key映射 mediatek\config\<project name>\mt6575-kpd.kl 如: key 252 SMS  其中252 是linux键码,SMS是android识别key值 如果是需要唤醒系统,还需要增加WAKE 如果新按键是全键盘的一些生僻字符,修改: mediatek\config\<project name>\mt6575-kpd.kcm 5.修改Java识别keycode framework/base/include/ui/KeyCodelabels.h KEYCODES数据结构后面增加 {"SMS",220} framework/base/native/include/android/KeyCodes.h 在按键定义项增加AKEYCODE_SMS = 220; 6.修改Java 键盘事件 framework/base/core/java/android/view/keyevent.java /** *@hide */ public static final int KEYCODE_SMS =220; 最后的按键为新增的 private static final int LAST_KEYCODE ==KEYCODE_SMS; 以上/**/注释的code是android 非开放API或变量定义的时候,需要添加Java Doc的识别,否则要运行make update-api才能build通过. 如果是系统按键,修改framework/base/libs/ui/input.cpp isSystemKey()增加case AKEYCODE_SMS: 7.修改XML文件描述符framework/base/core/res/res/values/attr.xml <enum name="KEYCODE_SMS" value="220" /> 8.增加测试验证log在android framework\base\policy\src\com\android\internal\polidy\impl\phoneWindowManager.java 在interceptKeyBeforeDispatching()增加 if(keycode== KeyEvent.KEYCODE_SMS){ log.d(TAG, "interceptKeyTi KEYCODE_SMS keyCode="+ keyCode + " down=" + down + " repeatCount=" + repeatCount + “ keyguardOn=” + keyguardOn + “ mHomePressed=” + mHomePressed + “ cancled=” + canceled) 9.增加按键全局功能响应: framework\base\policy\src\com\android\internal\polidy\impl\phoneWindow.java 分别在onKeyDown()、onKeyUp()增加对应代码 if(keycode== KeyEvent.KEYCODE_SMS){}
转载请注明原文地址: https://www.6miu.com/read-31821.html

最新回复(0)