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

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获得到了正确的值:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWpzb3JucA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

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

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

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

最新文章

  1. shiro权限管理框架与springmvc整合
  2. BZOJ 2815: [ZJOI2012]灾难
  3. [转]Unicode utf8等编码类型的原理
  4. Selenium3.0 自动化测试
  5. [BZOJ2876][NOI2012]骑行川藏(拉格朗日乘数法)
  6. linux下编译qt5.6.0静态库——configure配置
  7. Memcache学习php完整一例
  8. java 文件读取大全
  9. C#代码开发规范
  10. Python可以做什么?
  11. PHP自动分表程序
  12. POJ_3143 验证“歌德巴赫猜想”
  13. 设计模式(一): abstract factory抽象工厂模式 -- 创建型模式
  14. 第31讲 UI组件之 Gallery画廊控件
  15. Java中构造方法的执行顺序
  16. 从MongoDB的ObjectId中获取时间信息
  17. python高阶函数式编程
  18. 【转载】Excel 三维地图入门
  19. 破损的键盘 (Broken Keyboard)--又名悲剧文本(线性表)
  20. linux环境中如何删除文件的前n行?

热门文章

  1. 通过Type.InvokeMethod实现方法的重载
  2. HDU 1535 Invitation Cards (POJ 1511)
  3. ps中图层混合模式、多图层叠加、不透明度、填充、图层样式详解
  4. [Android学习笔记]使用getIdentifier()获取资源Id
  5. POJ 3076 Sudoku (dancing links)
  6. Java-WebSocket 项目的研究(三) WebSocketClient 类 具体解释
  7. 理解 Python 中的线程
  8. python之enumerate()函数的探究
  9. OCP读书笔记(11) - 使用闪回技术II
  10. Just learn how to use the JNI