在源码的目录下,有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