zoukankan      html  css  js  c++  java
  • 移植kl档,但调用默认Generic.kl解决的方法

    从飞机到现在移植模型来开发遥控器按键,调查发现,大部分的功能键始终没有任何效果。

    dumpsys input
    要查看当前的关键kl, 查找KeyLayoutFile它原来是默认Generic.kl,而不是我希望映射的Vendor_xxxx_Product_xxxx.kl这类的文件。


    会映射到默认的Generic.kl一般是由于driver中的verdor/product/version没有指定对,我检查kernel driver中的dev->driver_name等配置也没有问题。

    还有一方面。从dump出的Identifier也能够印证我的driver配置是正确的。

    于是仅仅好在InputDevice.cpp的getInputDeviceConfigurationFilePathByDeviceIdentifier()函数中加log。发现获取的vendor/product/versin都是正确的。load到的kl文件也没有问题。可是在log的下一行,却发现有KeyLayoutMap的错误:

    [20:34:57]E/KeyLayoutMap( 1437): /system/usr/keylayout/Vendor_xxxx_Product_0001.kl:88:Expected key code label, got 'VIRGIN'.


    猛然醒悟。我还没有在KeycodeLabels.h 等文件里移植加入“VIRGIN”等按键。于是我先把我的Vendor_xxxx_Product_0001.kl这个文件里的“VIRGIN”之类的键先凝视掉。再编译。dumpsys input,果然KeyLayoutFile获得到了正确的值:



    看来android会对kl中设定的按键与KeycodeLabels.h中的定做一个KeyLayoutMap的动作,而一旦没有map成功。KeyLayoutFile就会使用默认的Generic.kl文件。

    这个KeyLayoutMap的机制是我之前不知道的。看来接下来,须要细致分析下这个机制了~~~


    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    Git的分支的clone、提交及删除
    Linux查找整个目录下包含关键词的文件并全局替换文件内容
    解决Mysql group_concat长度限制
    SQLSERVER建立MYSQL连接服务器
    批处理创建文件夹
    表分区常用脚本
    添加别名的重要性
    floor相关
    T-SQL 小数点转换百分数
    开启MSDTC
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4860006.html
Copyright © 2011-2022 走看看