Android 添加按键及键值

Posted by qkmin on July 16, 2020

Android 添加按键及键值

	底层按键驱动调节好后,可以通过getevent看到按键响应
	
    /dev/input/event3: 0001 02fe 00000001

    /dev/input/event3: 0000 0000 00000000

    /dev/input/event3: 0001 02fe 00000000

    /dev/input/event3: 0000 0000 00000000
    
    
    其中02fe就是驱动上报的值,两次的1,0是指按下和弹起的动作。
   

1. gpio-keys.kl

gpio-keys.kl 这个文件对应的是定制机的kl 文件,不一定是这个名字,定义在 AndroidBoard.mk 中的: LOCAL_MODULE := gpio-keys.kl ,在手机中可以在/system/usr/keylayout 找到这个文件

将驱动上报的02fe转为十进制的766, 并且定义:

key 766 F14

这样就完成了对物理按键kl文件的映射到“F14”

2.framework native 中定义:

/frameworks/native/include/android/keycodes.h

AKEYCODE_F14 = 901

/frameworks/native/include/input/InputEventLabels.h

DEFINE_KEYCODE(F14)

3. framework base下的定义:

frameworks/base/core/java/android/view/KeyEvent.java:

定义按键的keyCode 也就是 APP 在onKeyDown() 获取的keyCode

public static final int KEYCODE_F14 = 901; // 注意APP获取的keyCode是901 不是766

frameworks/base/core/res/res/values/attrs.xml:

4.android O 需要添加

frameworks/base/data/keyboards/Generic.kl

frameworks/base/data/keyboards/qwerty.kl

key 766 F14

完成这一步才会生效。