您的位置:首页 > 移动开发 > Android开发

MTK Android Driver :add a new key

2015-11-12 12:14 363 查看
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){}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: