场景:厂商送过来的蓝牙遥控器有可能linux上不对应,例如蓝牙的source 被识别为F1键,这时需要重新配置kl
kl知识参考 https://www.jianshu.com/p/1b0ae800b5bf
cat /proc/bus/input/devices
getevent -l
getevent -i
dumpsys input
先说怎么修改

1.蓝牙遥控器连接
2.输入 dumpsys input 可以找到对应的kl文件(kl是标准linux与anroid键值映射文件)
3.输入getevent -l 按下source 可以实时打印键值
如下
//------------source
/dev/input/event4: EV_MSC MSC_SCAN 0007003a
/dev/input/event4: EV_KEY KEY_F1 DOWN
/dev/input/event4: EV_SYN SYN_REPORT 00000000
/dev/input/event4: EV_MSC MSC_SCAN 0007003a
/dev/input/event4: EV_KEY KEY_F1 UP
/dev/input/event4: EV_SYN SYN_REPORT 00000000
4.打开 对应的kl文件
key 59 F1 -------发现F1 是59,至于59怎么来的 还要看0007003a
key 60 F2
key 61 F3
key 62 F4
key 63 F5
key 64 F6
4.1修改为key 59 KEY_SOURCE,就可以适配遥控器。

---------------------------- 下面是解读 0007003a -----------------------
5. 0007003a 首先确认是0007是键盘 类型
./hisilicon/bigfish/sdk/source/kernel/linux-4.9.y/include/linux/hid.h:163:#define HID_UP_CONSUMER 0x000c0000

#define HID_UP_KEYBOARD 0x00070000 键盘
6. 003a 其实就是数组的下标,最终找到的值就是59,和kl文件的值对应(说明kl是标准linux与anroid键值映射文件)要怎么理解:因为linux可以分配很多合法键值,且不仅仅只有安卓系统再用,所以kl其实就是要找到linux合法键值(即59),且分配安卓的key(即F1),59又是怎么来的就是遥控器发送的0x0007003a ,
在hid-input.c中有个函数hidinput_configure_usage,会根据不同的hid执行不同的代码,为0007(HID_UP_KEYBOARD)时会处理hid_keyboard[256]的数组,把扫描码转换为10进制后就是该数组的下标,数组下标的数组元素就是linux键值
// 对应的就是3a,什么意思 3代表行(0,1,2,3)a代表列(就是0到10)
挺巧妙的用法,因为linux中数组排序就是一行16个(就是16进制的运用,要是你喜欢10进制也一样效果) 所以3代表第三行 a是第10列可以快速找到要的数值
static const unsigned char hid_keyboard[256] = {
0, 0, 0, 0, 30, 48, 46, 32, 18, 33, 34, 35, 23, 36, 37, 38,
50, 49, 24, 25, 16, 19, 31, 20, 22, 47, 17, 45, 21, 44, 2, 3,
4, 5, 6, 7, 8, 9, 10, 11, 28, 1, 14, 15, 57, 12, 13, 26,
27, 43, 43, 39, 40, 41, 51, 52, 53, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 87, 88, 99, 70,119,110,102,104,111,107,109,106,
105,108,103, 69, 98, 55, 74, 78, 96, 79, 80, 81, 75, 76, 77, 71,
72, 73, 82, 83, 86,127,116,117,183,184,185,186,187,188,189,190,
191,192,193,194,134,138,130,132,128,129,131,137,133,135,136,113,
115,114,unk,unk,unk,121,unk, 89, 93,124, 92, 94, 95,unk,unk,unk,
122,123, 90, 91, 85,unk,unk,unk,unk,unk,unk,unk,111,unk,unk,unk,
unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,
unk,unk,unk,unk,unk,unk,179,180,unk,unk,unk,unk,unk,unk,unk,unk,
unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,
unk,unk,unk,unk,unk,unk,unk,unk,111,unk,unk,unk,unk,unk,unk,unk,
29, 42, 56,125, 97, 54,100,126,164,166,165,163,161,115,114,113,
150,158,159,128,136,177,178,176,142,152,173,140,unk,unk,unk,unk
};

安卓 蓝牙遥控器键值配对 kl文件相关推荐

  1. Android系统适配蓝牙遥控器键值Hi3798MV100

    最近有个项目机顶盒要适配蓝牙遥控器,我们原来的盒子是红外的遥控器. 从某宝买回来几款通用的遥控器,最简单的一款用cat /proc/bus/input/devices 命令查看name是BESCO K ...

  2. 电视红外/蓝牙遥控器键值定义和适配

    电视遥控器适配和常见问题 遥控器键值适配 遥控器键值适配 一般来说,遥控器分蓝牙遥控器和红外遥控器.红外遥控器是指遥控器通过红外发射器把信号进行发射,接收设备则通过红外接收器进行信号接收:蓝牙遥控器是 ...

  3. android 蓝牙 遥控 电脑,Android系统适配蓝牙遥控器键值

    1,先确定走(/system/usr/keylayoutandroid系统中在/framework/base/data/keyboards)哪一个kl文件,可以通过指令getevent-l是那个eve ...

  4. Android系统适配蓝牙遥控器键值

    1,先确定走(/system/usr/keylayoutandroid系统中在/framework/base/data/keyboards)哪一个kl文件,可以通过指令getevent-l是那个eve ...

  5. android修改默认遥控器键值,android 中遥控器键值的添加和修改

    前言:TV 上遥控器键值怎么样对应到android的系统中,最近一个客户需要在我们的平台上修改,所以,我顺便做了一下总结,方便以后参考. 请转载的朋友一定加上出处,十分感谢~~ 第一步: init.r ...

  6. hash表--c语言 字符串键值配对——(key, value)

    c语言键值配对--(key, value) 看一个C++项目时,其中解析配置文的部分引发了我的思考. 配置文件问普通字符文件,内容都是类似 如下: ipaddr=127.0.0.1 port=888 ...

  7. android修改默认遥控器键值,RK3128平台android系统修改添加遥控器键值码值

    本帖最后由 微笑,一路向前 于 2017-1-4 15:34 编辑 最近帮客户定制RK3128平台的固件,涉及到定制新的遥控器,需要添加或修改遥控码值.RK3128平台Android系统修改遥控器码值 ...

  8. Android 智能TV电视系统遥控器键值添加

    Android键值中遥控器中的添加,下面是在mstar平台上的添加,做一个记录,以后方便找到,使用. 1,遥控按键键值映射标准化表示例: 自定义的按键名(中文) 自定义的按键名(英文) 红外码值(东芝 ...

  9. Unity中的输入事件总结与数字电视遥控器键值映射

    版权声明:欢迎批评指正,转载请务必注明原文链接:欢迎文章下公开讨论. https://blog.csdn.net/cordova/article/details/51036547 一.Unity的基本 ...

最新文章

  1. ACMNO.48 01字串
  2. Async Mode: Future使用
  3. hdu 2021 发工资咯:)(c语言)
  4. 弹窗进度条_QQ 大更新!语音进度条来了,还有这 5 个新变化
  5. git 查看代码量_学会这三个命令,你就不再是git只会用三板斧的菜鸟了
  6. 一篇文章带你读懂 MySQL 和 InnoDB
  7. 百度API获取位置范围内的周边服务
  8. 21天学通python-21天学通Python(第2版)
  9. 怎么在电脑上进行屏幕录像?电脑录屏的方法
  10. List Navision Security setting, 列出Navision相关账户的权限
  11. html-QQ登陆界面
  12. 色彩设计原理(里面有配色方案,也有配色网站)
  13. 云中和花木_王者荣耀:体验服4位英雄加强,狂铁不再“漏电”,云中君又行了...
  14. 华三模拟器:实现路由器接口使用dhcp获取地址
  15. PHP 图片转base64编码 和 base64编码字符串转换成图片保存
  16. 【视频异常检测-论文阅读】Anomaly Detection in Video via Self-Supervised and Multi-Task Learning
  17. 公司酒场被劝“你不喝就不拿我当朋友”,用4种拒酒话术,特管用
  18. Ubuntu常用命令及技巧 #小技巧 #常用终端命令 #远程管理 #SSH #FTP
  19. JavaScript基础DOM操作--在线英文发音
  20. Movavi PDF Editor 适用于Mac的多功能PDF编辑器

热门文章

  1. 应届生,你为什么那么想做产品经理
  2. 51单片机学习:LED闪烁实验
  3. 交互技术前沿学习心得——利用眼动追踪改良广告界面
  4. 44.android 简单的白天与夜晚模式切换
  5. 昆虫大战电子计算机软件,风雨的昆虫大战AI双图版
  6. java与es8实战之五:SpringBoot应用中操作es8(带安全检查:https、账号密码、API Key)
  7. 企业为什么要选择人力外包?好处与坏处
  8. matlab 求全波整流信号的傅里叶系数
  9. 电脑公司GHOST WIN7 装机旗舰版 2013 09
  10. python之bug0:selenium使用新版edge(chrome内核) 导致的webdriver.Edge 运行报错