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
linux的自定义input,linux键值到Android键值的转换与自定义相关推荐
- linux的自定义input,Linux Input子系统之第一篇(input_dev/input_handle/input_handler)
Input子系统是linux kernel中与部分外围器件驱动联系比较紧密的模块,常用于Sensor,TP(touch panel),power key等器件的驱动.这类模块有个共同特点:字符设备,且 ...
- linux+android4.2键值关系,Android4.0 添加一个新的Android 键值
这里添加新的键值,不是毫无凭据凭空创造的一个键值,而是根据kernel中检测到的按键值,然后转化为所需要的数值: 以添加一个linux键值为217,把它映射为android的键值Browser(这个键 ...
- Android4.0 添加一个新的Android 键值
这里添加新的键值,不是毫无凭据凭空创造的一个键值,而是根据kernel中检测到的按键值,然后转化为Android所需要的数值: 以添加一个Linux键值为217,把它映射为android的键值Brow ...
- linux input子系统 pdf,Linux下的Input子系统.pdf
计 算 机 系 统 应 用 ||ww.c·S-a.org.cn 2013年 第 22卷 第 l2期 Linux下的Input子系统① 朱银瑞,吴庆洪,吴华玲 (辽宁科技大学 电子与信息工程学院,鞍山) ...
- linux input子系统 pdf,Linux下的Input子系统①.PDF
Linux下的Input子系统①.PDF 计 算 机 系 统 应 用 2013 年 第 22 卷 第 12 期 Linux 下的Input 子系统① 朱银瑞, 吴庆洪, 吴华玲 (辽宁科技大学 电子与 ...
- platform框架--Linux MISC杂项框架--Linux INPUT子系统框架--串行集成电路总线I2C设备驱动框架--串行外设接口SPI 设备驱动框架---通用异步收发器UART驱动框架
platform框架 input. pinctrl. gpio 子系统都是 Linux 内核针对某一类设备而创建的框架, input子系统是管理输入的子系统 pinctrl 子系统重点是设置 PIN( ...
- 使用 Yocto Project 构建自定义嵌入式 Linux 发行版
使用 Yocto Project 构建自定义嵌入式 Linux 发行版 转自: http://zzjlzx.blog.chinaunix.net/uid-9688646-id-5175371.html ...
- 嵌入式linux按键扫描,嵌入式Linux驱动笔记(三十一)------SYSRQ组合键使用
你好!这里是风筝的博客, 欢迎和我一起交流. ALT+SYSRQ组合键是Linux调试的一种手段,即使在系统死机.panic.卡住等情况,只要系统还能响应中断,那么SYSRQ就派上用场了(比如触发cr ...
- 【Linux驱动】input子系统与按键驱动
input子系统架构总览 在网上能找到一些关于input子系统架构相关的示意图,大体表达的意思都差不多. linux输入子系统(linux input subsystem)从上到下由三层实现,分别为: ...
最新文章
- 反汇编引擎diStorm3
- Linux系统的进程管理
- 工作2年,月薪2万,我还是选择了离职
- cad细等线体不显示_CAD打印文字不显示?很多人不知道这个知识点!
- vivado链接不上开发板最有可能原因
- python图像识别坐标转换成g代码_python - 将坐标系导出为ESPG代码:to_epsg()或ExportToEPSG() - SO中文参考 - www.soinside.com...
- Git学习总结(2)——初识 GitHub
- jquery中的attr函数attr(name)、attr(key,value)、attr(properties)、attr(key,fn)、removeAttr
- 什么是:before和:after?
- Ansible条件测试
- Django自定义分页、bottle、Flask
- linux把profile文件删了怎么办,误删Profile后的处理
- MFC 序列化的理解及困惑点
- android 拷贝大文件,不用数据线,手机和电脑互传大文件
- A. One-dimensional Japanese Crossword
- 安装pywifi的坑
- RTX 3090 Ti和RX 6950 XT参数对比
- JavaScript 教程「2」:注释、输入输出、变量
- win7虚拟计算机名,电脑高手必会技能:VMware虚拟机安装win7教程
- 量子密钥分发技术原理
热门文章
- 基于.NET Standard的分布式自增ID算法--美团点评LeafSegment
- .NET Core微服务之路:让我们对上一个Demo通讯进行修改,完成RPC通讯
- 25大技术主题向您发出最后一次约【惠】邀请
- EF Core 插件 —— ToSql
- 世界上最大的搜索引擎公司 Google 宣布与 Elastic 达成战略合作协议
- 怎样在Redis通过StackExchange.Redis 存储集合类型List
- Nginx 网站定义自己的错误页面
- java 二分法查找数组,Java二分法查找数组元素下标
- C/C++笔试面试题目(2021最新版)
- 剑指offer之二维数组中查找