1.确认驱动中的键值定义
kernel/include/uapi/linux/input.h
#define KEY_INDOOR 301
驱动中会上报KEY_F13,对应键值就是183,驱动上报的键值android层会映射成android Keycode
2.*.kl文件中添加键值
/frameworks/base/data/keyboards/Generic.kl
key 301 INDOOR
/frameworks/base/data/keyboards/qwerty.kl
key 301 INDOOR
3.定义键值映射
/frameworks/native/include/input/InputEventLabels.h
数组中添加
static const InputEventLabel KEYCODES[] = {
…
DEFINE_KEYCODE(INDOOR),
}
/frameworks/native/include/android/keycodes.h
enum {
…
AKEYCODE_F13 = 400
}
/frameworks/base/core/java/android/view/KeyEvent.java
public class KeyEvent extends InputEvent implements Parcelable {
…
public static final int KEYCODE_INDOOR = 400;
}
/frameworks/base/core/res/res/values/attrs.xml
5.frameworks/base/api/current.txt
field public static final int KEYCODE_INDOOR =400;