android 按键 添加

在源码的目录下,有device目录,在要选择加入的项目下,有.kl文件

例如我们要加入按键值对应的是 aw9523_kpd.kl文件,

在相同目录下有一个device.mk我们需要把这个文件添加的device.mk下,

aw9523文件内容

#FUNCTION  
key 61   YEEZ_F1
#BUSINESS
key 62   YEEZ_F2
#STSTE
key 60   YEEZ_F3
#BRIGHTNESS
key 59   YEEZ_F4
#KEYLOCK
key 63   YEEZ_F5


key 61 这样的值是上层上报的getevent 对应的值

device.mk

PRODUCT_COPY_FILES += \
$(TARGET_BOARD_DIR)/comip-keypad.kl:system/usr/keylayout/comip-keypad.kl \
$(TARGET_BOARD_DIR)/aw9523_kpd.kl:system/usr/keylayout/aw9523_kpd.kl

后面对应的系统的keyevent名字 前面要补全keycode的名字


在keyevent.java中

public static final int KEYCODE_YEEZ_F1          = 223; // 223
    public static final int KEYCODE_YEEZ_F2          = 224; // 224
    public static final int KEYCODE_YEEZ_F3          = 225; // 225
    public static final int KEYCODE_YEEZ_F4          = 226; // 226
    public static final int KEYCODE_YEEZ_F5          = 227; // 227

在keyevent.java  populateKeycodeSymbolicNames()方法中

names.append(KEYCODE_YEEZ_F1, "KEYCODE_YEEZ_F1");
        names.append(KEYCODE_YEEZ_F2, "KEYCODE_YEEZ_F2");
        names.append(KEYCODE_YEEZ_F3, "KEYCODE_YEEZ_F3");
        names.append(KEYCODE_YEEZ_F4, "KEYCODE_YEEZ_F4");
        names.append(KEYCODE_YEEZ_F5, "KEYCODE_YEEZ_F5");

这里需要对应起来,这样 基本就可以把android 硬件加载进去,对应的值是keyevent里的数值

这里还需要说明一点在frameworks\native\include\input\KeycodeLabels.h中 ,在static const KeycodeLabel KEYCODES[]中继续往下追加



    { "YEEZ_F1", 223 },
    { "YEEZ_F2", 224 },
    { "YEEZ_F3", 225 },
    { "YEEZ_F4", 226 },
    { "YEEZ_F5", 227 },
    { "YEEZ_F6", 228 },
    { "YEEZ_F7", 229 },
    { "YEEZ_F8", 230 },
    { "YEEZ_F9", 231 },
    { "YEEZ_F10", 232 },
    { "YEEZ_F11", 233 },
    { "YEEZ_F12", 234 },
映射的时候,会在前面自动加KEYCODE

你可能感兴趣的:(android 按键 添加)