zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    批处理实现终端安全设置
    【干货】JavaScript DOM编程艺术学习笔记10-12【完】
    【干货】JavaScript DOM编程艺术学习笔记7-9
    【干货】JavaScript DOM编程艺术学习笔记4-6
    【干货】JavaScript DOM编程艺术学习笔记1-3
    【干货】Html与CSS入门学习笔记12-14【完】
    Less-8
    Less 7
    Less 6
    Less 5
  • 原文地址:https://www.cnblogs.com/goahead--linux/p/12931179.html
Copyright © 2011-2022 走看看