linux键值转android键值配置文件

Posted 二进制的奥秘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux键值转android键值配置文件相关的知识,希望对你有一定的参考价值。

hexdump /dev/hidraw0就能看到usbhid设备传输过来的裸流

如:按下Input键

前面的估计是码流头(003ae60),还有按下(0096),松开(0086)等信息,识别按键有效信息是(006b)

006b其实是索引值,会在下表中寻找键值发送给android,如:6b对应186

在Android层接收的消息我们可以通过getevent获得

可以看到006b这一项就是hid设备发送过来的码值,ba就是186,在linux层获取到的键值

Android通过event2获得到键值后,接下来就是标准的Android按键映射流程了

首先就是查看/dev/input/event2这个设备文件对应的设备信息及映射表

设备信息是:vendor=0x1a1d, product=0x00e0

那么根据我们之前按键映射流程的分析,会先查找是否有Vendor_[vendor]_Product_[product].kl

这里得到/system/usr/keylayout/Vendor_1a1d_Product_00e0.kl,源码目录在frameworks/base/data/keyboards/Vendor_1a1d_Product_00e0.kl

查看映射表文件,发现

 

即最后会向APK发送KEYCODE_TV_INPUT

最后需要注意的一点是,如果TV_INPUT在KeycodeLabel中没定义,是解析Vendor_1a1d_Product_00e0.kl这个映射表文件的时候会出错,从而导致event2用Generic.kl

因此KeycodeLabel中必须有TV_INPUT项:

 

(转载自:https://www.cnblogs.com/TaigaCon/p/4813742.html

 

以上是关于linux键值转android键值配置文件的主要内容,如果未能解决你的问题,请参考以下文章

Helm 图表忽略配置文件或给定键值

带有python中键值对列表的配置文件

如何修改文件config.php或者加载自定义的配置文件

C 语言文件操作 ( 配置文件读写 | 业务逻辑 | 接口设计 )

Spring Boot 2.X 装载 yaml 配置文件的键值对

C# 读取app.config配置文件 节点键值,提示 "配置系统未能初始化" 错误的解决方案