linux的自定义input,linux键值到Android键值的转换与自定义

首先要确定按键输入设备是对应/dev/input目录下哪个event,根据VID PID匹配对应的kl文件,可通过如下命令 cat /proc/bus/input/devices 查看设备信息

framework层通过.kl文件将获取的键值转换成实际按键含义后,又会通过KeycodeLabel转换成相应的keycode,具体文件在:frameworks\native\include\input\KeycodeLabels.h

然后app可以通过如下方法获得对应键按下时的keyCode值,即“F11”对应获得的keyCode即为上面自定义的<546>

添加自定义的键值:

(1)Kernel层:

① include/uapi/linux/input.h 中添加: #define KEY_LXL               123

② drivers/hid/hid-input.c 中添加:                case 0x188: map_key_clear(KEY_LXL);      break;   //其中0x188是HID设备上报的原始键值

(2)Android系统层:

① bionic/libc/kernel/uapi/linux/input-event-codes.h 中添加  : #define KEY_LXL               123    //与kernel中头文件定义一致②Generic.kl或Vendor_xxxx_Product_xxxx.kl文件中添加      :  key 123 LXL;

③/frameworks/native/include/android/keycodes.h  中添加  :  AKEYCODE_LXL          = 666,

④/frameworks/native/include/input/KeycodeLabels.h 的KEYCODES[]数组中添加:{ "LXL", 666 },

⑤在frameworks/base/core/res/res/values/attrs.xml 中添加 :  

⑥在frameworks/base/core/java/android/view/KeyEvent.java添加:public static final int KEYCODE_LXL= 666;

经过如上的步骤就将Linux驱动向上层抛出的"123"键值和Android系统中的KEYCODE_LXL <666>对应起来了,然后可以在Android的framework层的键值处理函数中,捕获按键事件,并进行相应自定义处理,具体在frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java 的interceptKeyBeforeQueueing()函数中实现。

(转载自: https://www.cnblogs.com/blogs-of-lxl/p/9490205.html      https://www.cnblogs.com/blogs-of-lxl/p/9490205.html)

原文:https://www.cnblogs.com/goahead--linux/p/12924941.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297818.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

原来历史人物的英文名竟然叫这些,太好笑了吧哈哈哈哈哈

全世界只有3.14 % 的人关注了爆炸吧知识我们学了这么多年的英语你有英文名字吗&#xff1f;如果有一天&#xff0c;古人穿越到了现在那么他们的英文名字是……汉武帝&#xff1a;Woody汉文帝&#xff1a;Wendy▽朱棣&#xff1a;judy▽朱熹&#xff1a;Juicy▽周瑜&#xff1a;…

10款优秀的跨平台免费生产力软件[转]

因为多数人并不需要OpenOffice.org那样整合了字处理、表格、幻灯片制作等完整的生产力工具&#xff0c;他们只需要其中一项功能&#xff1a;字处理软件AbiWord 2.8.6&#xff1b;开源桌面排版系统Scribus 1.3.8&#xff1b;整合浏览器、电子邮件、IRC和HTML编辑器的SeaMonkey 2…

From Apprentice To Artisan 翻译 19

为什么80%的码农都做不了架构师&#xff1f;>>> 上一篇 Interface Segregation Principle 接口隔离原则 Introduction 介绍 The Interface Segregation principle states that no implementation of an interface should be forced to depend on methods it does n…

Winform模拟post请求和get请求登录网站

引言最近有朋友问如何用winform模拟post请求&#xff0c;然后登录网站&#xff0c;稍微想了一下&#xff0c;大致就是对http报文的相关信息的封装&#xff0c;然后请求网站登录地址的样子。发现自己的博客中对这部分只是也没总结&#xff0c;就借着这股风&#xff0c;总结一下h…

python eval函数_Python eval 函数妙用

作者博文地址&#xff1a;https://www.cnblogs.com/liu-shuai/ eval 功能&#xff1a;将字符串str当成有效的表达式来求值并返回计算结果。 语法&#xff1a; eval(source[, globals[, locals]]) -> value 参数&#xff1a; source&#xff1a;一个Python表达式或函数compil…

易宝支付碰到 交易签名无效问题

今天在易宝支付问题上给纠结了半天&#xff0c;将模块加进文件中&#xff0c;设置好商户ID与密钥&#xff0c;加上对应的域名&#xff0c;是可以实现在线支付问题。但我现在要的功能是要按不同的分组&#xff0c;去读取不同的商户ID与密钥&#xff0c;因些&#xff0c;我将这些…

那些上海滩的金融传奇,或许都开始于一份PPT

全世界只有3.14 % 的人关注了爆炸吧知识 我从07年开始在上海做商务PPT定制&#xff0c;从工作室一步一步到国内首家PPT定制公司&#xff0c;从电脑前到讲台前做培训&#xff0c;算是见证了中国PPT行业的发展。在我大大小小做过的项目里&#xff0c;印象最深的莫过于“靠PPT拿下…

Android 控件之RatingBar评分条

RatingBar是Adnroid中的评分条。效果挺得的 源码下载 一、概述 RatingBar是SeekBar和ProgressBar的扩展&#xff0c;用星星来评级。使用的默认大小RatingBar时&#xff0c;用户可以触摸/拖动或使用键来设置评分&#xff0c;它有俩种样式&#xff08;大、小&#xff09;&#xf…

c语言字符比较思路,C语言讲解思路资料

《C语言讲解思路资料》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《C语言讲解思路资料(10页珍藏版)》请在人人文库网上搜索。1、C语言讲解思路1,认识C语言的组成: #in elude main ()printf(Hello, worldn);构成&#xff1a;包含预定义文件、函数体、主函数 一个C程…

3d目标检测_CVPR 2020 |基用于3D目标检测的层级图网络

论文&#xff1a;A Hierarchical Graph Network for 3D Object Detection on Point Clouds论文地址&#xff1a;https://www.aminer.cn/pub/5eccb534e06a4c1b26a834c7?confcvpr2020由于大多数现有的点云对象检测方法不能充分适应点云的特征(例如稀疏性)&#xff0c;所以一些关…

C# datagridview、datagrid、GridControl增加行号

01—WinForm中datagridview增加行号在界面上拖一个控件dataGridView1&#xff0c;在datagridview添加行事件中添加如下代码&#xff1a;private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e){try{for (int i 0; i < dataGridView1.Rows…

position定位 响应式_使用 Vue3 实现双盒子定位 Overlay

之前说过&#xff0c;使用 可以很优雅的把某个组件渲染到根节点之外的节点&#xff0c;同时使其渲染的内容不丧失响应式和对应的生命周期函数调用。那么基于此&#xff0c;用 实现相对于某一元素的 Overlay 。实际上&#xff0c;这篇文章跟 Vue3 的关系不大&#xff0c;只是通…

模型化的SAP系统权限管理

IDS Scheer中国副总裁 王磊 SAP系统刚上线时&#xff0c;系统内的权限管理往往并不引起重视。大家关注 更多的是系统能否顺畅运行、数据是否准确&#xff0c;财务帐是否能对得上等等。事实上&#xff0c;此时为了确保系统迅速转起来&#xff0c;给很多用户的权限往往是放大的。…

月薪5 千~1万的兼职你要不要?不限学历,不限男女!

全世界只有3.14 % 的人关注了爆炸吧知识你想拥有一份月薪过万的兼职吗&#xff1f;窝在家里就行的那种&#xff1f;这就有一份看起来高大上、实则难度系数并不高的英语翻译&#xff01;兼职英语翻译到底有多赚钱&#xff1f;水平一般的英语笔译员一周7天每天拿出2小时翻译&…

电子商务时代企业统计的发展方向

摘要&#xff1a;电子商务的出现,对现代企业产生了巨大的影响。它从多个方面影响着现代企业的发展,其中即有机遇也有挑战。文章将从企业统计面临的理论、职能、组织等方面的困境,阐述电子商务的影响。 一、企业统计工作面临时代困境 1.企业统计理论困境 任何企业统计理论总是建…

c语言课程设计加密程序,C语言课程设计文件加密解密.doc

C语言课程设计文件加密解密C语言程序设计 课程设计学 院 计算机工程 班 级 计算1313姓 名 学 号 201321121089成 绩 指导老师2014年6月26日计算1313班C语言程序设计课程设计大纲一、设计目的&#xff1a;通过课程设计&#xff0c;学会把相关的理论知识和实际应用相结合&#xf…

【分享】154页微软WPF官方手册(含.NETCore和.NET Framwork双版本)

物联网IOT多场景概念落地&#xff0c;带火了WPF招聘&#xff0c;像阿里影视、百度地图、小米小鹏特斯拉都在高薪抢WPF人才了。机智的.NET开发者去关注学习WPF的时候却发现&#xff0c;市面上真的太缺WPF优秀的教程了&#xff0c;还好这里有最权威最详尽的微软官方pdf教程&#…

ln -s 的一个坑

为什么80%的码农都做不了架构师&#xff1f;>>> 事情是这样的&#xff0c;今天在ssh到iphone上将一个应用内目录软链接配置到用户目录下时&#xff0c;执行了如下命令&#xff1a; cd /var/mobile/Applications/9E13D9B8-63E0-49A5-82CE-6DB914495EC1/Documentsmkd…

python 空指针_Python&CType空指针错误

我正在从Python访问C共享库。 C共享库管理信号分析器&#xff0c;并且在没有源代码的情况下分发。Python&#xff06;CType空指针错误 其中一个功能需要一个结构被传递到函数调用&#xff0c;我不知道我正在使用ctypes正确地做它。 在头文件中的结构定义是&#xff1a; typedef…

unity重定向_unity3D游戏开发之动画混合与动画重定向

Unity3D游戏开发之动画混合与动画重定向动画混合状态机之中的状态不仅可以是单个剪辑&#xff0c;也可以是一个混合树。构建和编辑复杂的状态机和混合树&#xff0c;以便完全控制的角色如何运动。Unity编辑器提供强大的工具&#xff0c;用于分割、创建循环和从导入的动画文件中…