Linux 输入事件

1、输入系统框架

2、内核使用 input_dev表示输入设备,它的内容如下

通过cat  /proc/bus/input/devices 可获取相关输入设备信息

其中B,表示对应的BITS项,B: EV表示对应支持的EVT事件,即变量 evbit
再举一个例,B: KEY=14000000000000 0 表示对应支持的EVT_KEY支持项,即变量keybit,
此数据是16进制数据,每个空格分隔为8个字节64位,0x14000000000000 0那数据变成
0x14000000000000 0000000000000000,修改为二进制为
其中14分解为0001 0100后面跟28个0,每个0有4位,那么位置分别为第115和117位,序号从0开始算
即支持EVT_KEY位114 和 116即 KEY_VOLUMEDOWN和KEY_POWER

3、App获取时间通过read /dev/input/eventxxx 来获取输入事件,input_event结构体如下

type : 类型 如 EV_KEY
code:  代号 如KEY_A
value: 值  如1按下 0 松开

所有上报事件都有EV_SYN,这个事件收到表示事件上报完毕,
比如触摸屏事件有多个事件,当事件上报完毕后,上报EV_SYN

4、Android 手机可以使用getevent来显示相关输入情况

getevent -l 列出所有输入设备相关信息

getevent -i 列出所有输入设备支持信息

getevent代码在system/core/toolbox中实现

框架代码在

frameworks/native/services/inputflinger/reader/EventHub.cpp

中读取文件节点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值