移植kl档,但调用默认Generic.kl解决的方法

移植kl档,但调用默认Generic.kl解决的方法

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

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

dumpsys input

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

移植kl档,但调用默认Generic.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获得到了正确的值:

移植kl档,但调用默认Generic.kl解决的方法

移植kl档,但调用默认Generic.kl解决的方法

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

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


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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116767.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 画图软件origin-柱状图断点设置

    画图软件origin-柱状图断点设置OriginLab为中国学生提供了免费半年正版中文OriginPro;注册完毕后登录学校邮箱,请根据邮件提示完成安装注册即可,然后会发送安装教程给你。参考:https://my.originlab.com/forum/topic.asp?TOPIC_ID=22328…

    2022年9月1日
    2
  • java基础菜鸟教程容器类,复习指南[通俗易懂]

    java基础菜鸟教程容器类,复习指南[通俗易懂]面试官最爱问的Kakfa,基础+进阶+高级,疯狂轰炸!Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息

    2022年6月28日
    27
  • 解决vscode中文乱码的代码_vscode终端

    解决vscode中文乱码的代码_vscode终端我们现在很多编程开放工作中,VSCode已经成了一款难以绕过去的轻量级完善好用的代码编辑器。功能完善兼容性好体验不错,受到越来越多的开发者的认可。所以涉及到编程工作,VScode的安装是个必备的准备工作。我们本文就介绍下Windows和Ubuntu这样的Linux两个操作系统下安装VScode编辑器并解决打开代码文件的时候其中中文显示乱码的问题。当然Windows版本的VScode安装很简单,我们…

    2022年9月2日
    3
  • python 初中课程_8年级将新增Python课程内容

    python 初中课程_8年级将新增Python课程内容从2020年9月1日开始,浙江3~9年级信息技术课程将替换新的教材。其中变化较大的是,8年级将新增Python课程内容。这也就意味着:从今天起,Python正式成为浙江中学生信息技术必修课!新高一信息技术编程语言由VB替换为Python,大数据、人工智能、程序设计与算法。网友们直呼:我连Excel都还没整明白,人家后浪们就开始学Python了。从的教材目录上我们可以看到,不止是初中,从小学阶段开始…

    2022年5月17日
    41
  • FinSH控制台「建议收藏」

    FinSH控制台「建议收藏」RT-ThreadFinSH使用一、FinSH内置命令二、自定义FinSH命令2.1自定义msh命令2.2自定义C-style命令三、FinSH功能配置  shell是用户与操作系统间接口的程序,它允许用户向操作系统输入需要执行的命令,并将操作系统的运行结果返回给用户。  FinSH就是RT-Thread的shell(命令行组件),在读取输入命令后,解析并自动扫描内部函数表,寻找对应函数…

    2022年5月11日
    48
  • java hashmap和treemap_java中treemap和hashmap的区别是什么?

    java hashmap和treemap_java中treemap和hashmap的区别是什么?区别 1 HashMap 中元素是没有顺序的 TreeMap 中所有元素都是有某一固定顺序的 2 HashMap 继承 AbstractMap 类 是基于 hash 表实现的 TreeMap 继承 SortedMap 类 是基于红黑树实现的 TreeMap 和 HashMap 的区别 Map 在数组中是通过数组下标来对其内容进行索引的 而 Map 是通过对象来对对象进行索引的 用来索引的对象叫键 key 其对应的对象叫值 va

    2025年8月24日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号