背景

  • Platform: RK3399
  • OS: Android7.1.2
  • Kernel: v4.4.103

调试

  • 通过命令cat /proc/bus/input/devices 确认按键使用的键值对的文件名 通过“name”字段判断。
  • getevent可以查看上报的键值和状态

添加android已有的功能按键

当新增的按键功能是android系统默认自带的,
需要在frameworks/base/data/keyboards/Generic.kl 中找到你需要的按键键值
然后在对应的dts中添加对应的按键映射就可以了。
需确保使用的键值对的文件device/rockchip/common/rk29-keypad.kl里也有该键值对

添加自定义按键

具体可以参考某个已有的按键,在同一位置添加自定义按键

  1. device/rockchip/common/rk29-keypad.kl 中添加按键的键值对。驱动上报的键值。
  2. frameworks/native/include/android/keycodes.hframeworks/native/include/input/InputEventLabels.h 中添加android层键值定义。
  3. frameworks/base/core/java/android/view/KeyEvent.java frameworks/base/core/res/res/values/attrs.xml定义APP层按键常量。
  4. frameworks/base/data/keyboards/Generic.kl 中添加键值对。
  5. frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java 中的interceptKeyBeforeQueueing()函数中添加系统层按键处理

参考

  1. https://blog.csdn.net/u010783226/article/details/940514620