rk 3326 Android12 蓝牙遥控器新增键值

本文章只说明蓝牙键值的添加,红外的键值可以参考rk的sdk的文档common\PWM\Rockchip_Developer_Guide_PWM_IR_CN.pdf

遥控器连上蓝牙后,通过getevent 获取蓝牙打印的键值,例如:

0x0c是遥控器的协议,0xde是遥控器发送的码值。0xf0是驱动定义好的值,一般返回0xf0说明该键值还没有定义。
所以需要我们对这个按键进行一个适配,步骤如下:
1.打开kernel-4.19/drivers/hid/hid-input.c
找到case HID_UP_CONSUMER:
在里面添加蓝牙码值

在这里插入图片描述

2.打开kernel-4.19/include/linux/input-event-codes.h
添加刚才需要定义的常量

在这里插入图片描述到这一步,我们就可以通过getevent获取到刚添加的值。

3.我们修改键值映射文件,这里以默认的Generic.kl文件说明,具体使用哪个kl文件,可以通过dumpsys input查看。
kl文件路径为 framework/base/data/keyboards/Generic.kl

在这里插入图片描述4.添加完kl文件后需要添加kl文件需要的常量
打开frameworks/native/include/android/keycodes.h

在这里插入图片描述需要按照AKEYCODE_XXX的格式定义,定义值是给上层使用的。
然后打开frameworks/native/libs/input/InputEventLabels.cpp文件,
添加常量值

在这里插入图片描述添加后打开frameworks/base/core/java/android/view/KeyEvent.java

新增常量定义

在这里插入图片描述,修改完KevEvent.java后编译可能会报api update的错,报错如下:

You have tried to change the API from what has been previously approved.

To make these errors go away, you have two choices:

  1. You can add ‘@hide’ javadoc comments to the methods, etc. listed in the
    errors above.

  2. You can update current.txt by executing the following command:
    make api-stubs-docs-update-current-api

To submit the revised current.txt to the main Android repository,
you will need approval.

按照指令提示我们更新下api,执行make api-stubs-docs-update-current-api后,再编译顺利通过,可以正常使用识别蓝牙的键值。一般键值的逻辑处理在frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java。

  • 13
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值