当前位置: 移动技术网 > 网络运营>服务器>Linux > android 添加自定义键值

android 添加自定义键值

2020年09月29日  | 移动技术网网络运营  | 我要评论
添加自定义的键值:(1)Kernel层:    ① include/uapi/linux/input.h 中添加: #define KEY_LXL 123    ② drivers/hid/hid-input.c 中添加: case 0x188: map_key_clear(KEY_LXL); break; //其中0x188是HID设备上报的原始键值(2)Android系统层:  ① bionic/libc/ker...

添加自定义的键值:

 

--------------------------------------Kernel层-----------------------------------------------------------------

    ① include/uapi/linux/input.h 中添加: #define KEY_LXL               123
    ② drivers/hid/hid-input.c 中添加:                

                   case 0x188: map_key_clear(KEY_LXL);      break;   //其中0x188是HID设备上报的原始键值


 

-------------------------------------Android系统层-----------------------------------------------------------------

  ① bionic/libc/kernel/uapi/linux/input-event-codes.h 中添加  : #define KEY_LXL              123    //与kernel中头文件定义一致
  ② Generic.kl或Vendor_xxxx_Product_xxxx.kl文件中添加      :  key 123 LXL;
  ③ /frameworks/native/include/android/keycodes.h  中添加  :  AKEYCODE_LXL          = 666,
  ④ /frameworks/native/include/input/KeycodeLabels.h 的KEYCODES[]数组中添加: { "LXL", 666 },
  ⑤ 在frameworks/base/core/res/res/values/attrs.xml 中添加 :  <enum name="KEYCODE_LXL" value="666" />
  ⑥ 在frameworks/base/core/java/android/view/KeyEvent.java添加: public static final int KEYCODE_LXL= 666;


  经过如上的步骤就将Linux驱动向上层抛出的"123"键值和Android系统中的KEYCODE_LXL <666>对应起来了,
  然后可以在Android的framework层的键值处理函数中,捕获按键事件,并进行相应自定义处理,
  具体在frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java 
  的interceptKeyBeforeQueueing()函数中实现。

本文地址:https://blog.csdn.net/u010559573/article/details/108862553

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网