getevent 指令用于获取 input 输入事件,比如获取按键上报信息、获取触摸屏上报信息等。

指令源码路径:/system/core/toolbox/getevent.c

getevent -h:查看 getevent 帮助信息

  1. root@rk3288:/ # getevent -h
  2. getevent -h
  3. Usage: getevent [-t] [-n] [-s switchmask] [-S] [-v [mask]] [-d] [-p] [-i] [-l] [-q] [-c count] [-r] [device]
  4. -t: show time stamps
  5. -n: don't print newlines
  6. -s: print switch states for given bits
  7. -S: print all switch states
  8. -v: verbosity mask (errs=, dev=, name=, info=, vers=, pos. events=, props=)
  9. -d: show HID descriptor, if available
  10. -p: show possible events (errs, dev, name, pos. events)
  11. -i: show all device info and possible events
  12. -l: label event types and names in plain text
  13. -q: quiet (clear verbosity mask)
  14. -c: print given number of events then exit
  15. -r: print rate events are received

getevent:显示当前有那些输入设备,数量与 /dev/input 目录下相同

  1. root@rk3288:/ # getevent
  2. getevent
  3. add device : /dev/input/event3
  4. name: "ILITEK Multi-Touch-V3020"
  5. add device : /dev/input/event2
  6. name: "PC Camera"
  7. add device : /dev/input/event1
  8. name: "gsensor"
  9. add device : /dev/input/event0
  10. name: "rk29-keypad"
  11.  
  12. root@rk3288:/ # ls /dev/input
  13. ls /dev/input
  14. event0
  15. event1
  16. event2
  17. event3

查看默认上报数据

  1. root@rk3288:/ # getevent /dev/input/event3
  2. getevent /dev/input/event3
  3.  
  4. 00001a9f
  5. 014a
  6.  
  7. 00001a9f
  8.  
  9. ffffffff
  10. 014a

-t:显示时间戳

  1. // 读取 event3 数据(触摸屏)
  2. root@rk3288:/ # getevent -t /dev/input/event3
  3. getevent -t /dev/input/event3
  4. [ 1141.248434] 0000000e
  5. [ 1141.248434] 00002cd4
  6. [ 1141.248434] 00001a09
  7. [ 1141.248434] 014a
  8. [ 1141.248434] 00002cd4
  9. [ 1141.248434] 00001a09
  10. [ 1141.248434]
  11. [ 1141.322181] ffffffff
  12. [ 1141.322181] 014a
  13. [ 1141.322181]

-n:不换行打印

  1. root@rk3288:/ # getevent -n /dev/input/event3
  2. getevent -n /dev/input/event3
  3. 00002f000003 00001a4e0001 014a 00002f000003 00001a4e0000 ffffffff0001 014a 00002e880003 000019b80001 014a 00002e880003 000019b80000 ffffffff0001 014a 00002d700003 00001a000001 014a 00002d700003 00001a000000 ffffffff0001 014a 00002d080003 000019a50001 014a 00002d080003 000019a50000 ffffffff0001 014a

-s:显示指定位的开关状态

  1. root@rk3288:/ # getevent -s5 /dev/input/event3
  2. getevent -s5 /dev/input/event3

-S:显示所有位的开关状态

  1. root@rk3288:/ # getevent -S /dev/input/event3
  2. getevent -S /dev/input/event3

-v:根据 mask 值显示相关信息,执行后会一直显示上报数据

errs=1, dev=2, name=4, info=8, vers=16, pos. events=32, props=64

默认显示 dev| name| info| vers = 30;

  1. root@rk3288:/ # getevent -v /dev/input/event3
  2. getevent -v /dev/input/event3
  3. add device : /dev/input/event3
  4. bus:
  5. vendor 222a
  6. product 004d
  7. version
  8. name: "ILITEK Multi-Touch-V3020"
  9. location: "usb-ff540000.usb-1.3/input0"
  10. id: ""
  11. version: 1.0.
  12.  
  13. root@rk3288:/ # getevent -v30 /dev/input/event3
  14. getevent -v30 /dev/input/event3
  15. add device : /dev/input/event3
  16. bus:
  17. vendor 222a
  18. product 004d
  19. version
  20. name: "ILITEK Multi-Touch-V3020"
  21. location: "usb-ff540000.usb-1.3/input0"
  22. id: ""
  23. version: 1.0.
  24.  
  25. root@rk3288:/ # getevent -v2 /dev/input/event3
  26. getevent -v2 /dev/input/event3
  27. add device : /dev/input/event3
  28.  
  29. root@rk3288:/ # getevent -v8 /dev/input/event3
  30. getevent -v8 /dev/input/event3
  31. bus:
  32. vendor 222a
  33. product 004d
  34. version
  35. location: "usb-ff540000.usb-1.3/input0"
  36. id: ""
  37.  
  38. root@rk3288:/ # getevent -v16 /dev/input/event3
  39. getevent -v16 /dev/input/event3
  40. version: 1.0.
  41.  
  42. root@rk3288:/ # getevent -v32 /dev/input/event3
  43. getevent -v32 /dev/input/event3
  44. events:
  45. KEY (): 014a
  46. ABS (): : value , min , max , fuzz , flat , resolution
  47. : value , min , max , fuzz , flat , resolution
  48. 002f : value , min , max , fuzz , flat , resolution
  49. : value , min , max , fuzz , flat , resolution
  50. : value , min , max , fuzz , flat , resolution
  51. : value , min , max , fuzz , flat , resolution

-d:如果设备可用,显示设备隐藏的描述信息

-p:显示设备支持的事件类型和编码方式

  1. root@rk3288:/ # getevent -p /dev/input/event3
  2. getevent -p /dev/input/event3
  3. add device : /dev/input/event3
  4. name: "ILITEK Multi-Touch-V3020"
  5. events:
  6. KEY (): 014a
  7. ABS (): : value , min , max , fuzz , flat , resolution
  8. : value , min , max , fuzz , flat , resolution
  9. 002f : value , min , max , fuzz , flat , resolution
  10. : value , min , max , fuzz , flat , resolution
  11. : value , min , max , fuzz , flat , resolution
  12. : value , min , max , fuzz , flat , resolution
  13. input props:
  14. INPUT_PROP_DIRECT

-i:显示设备的所有信息和支持的事件,比 -p 显示更多信息

  1. root@rk3288:/ # getevent -i /dev/input/event3

-l:以文本形式输出事件类型和名称,比 -t 更清楚直观

  1. // 读取 event3 数据(触摸屏)
  2. root@rk3288:/ # getevent -l /dev/input/event3
  3. getevent -l /dev/input/event3
  4. // 事件类型 事件码 事件值
  5. EV_ABS ABS_MT_TRACKING_ID 0000000f
  6. EV_ABS ABS_MT_POSITION_X 00002bbc
  7. EV_ABS ABS_MT_POSITION_Y 00001b6d
  8. EV_KEY BTN_TOUCH DOWN
  9. EV_ABS ABS_X 00002bbc
  10. EV_ABS ABS_Y 00001b6d
  11. EV_SYN SYN_REPORT
  12. EV_ABS ABS_MT_TRACKING_ID ffffffff
  13. EV_KEY BTN_TOUCH UP
  14. EV_SYN SYN_REPORT

-q:暂时不会使用

-c:打印固定数量的事件并退出

  1. root@rk3288:/ # getevent -c /dev/input/event3
  2. getevent -c /dev/input/event3
  3.  
  4. 000038a4
  5. 000008f5
  6. 014a
  7. 000038a4
  8. 000008f5
  9.  
  10. ffffffff
  11. 014a

-r:显示事件上报速率

  1. // 检测触摸屏报点速率
  2. root@rk3288:/ # getevent -r /dev/input/event3
  3. getevent -r /dev/input/event3
  4.  
  5. 000030d8
  6.  
  7. 014a
  8. 000030d8
  9.  
  10. rate
  11. ffffffff
  12. 014a
  13. rate

参数可以组合使用,一次性查看需要的触摸屏信息

  1. root@rk3288:/ # getevent -tlr /dev/input/event3
  2. getevent -tlr /dev/input/event3
  3. [ 2514.550104] EV_ABS ABS_MT_TRACKING_ID 0000001c
  4. [ 2514.550104] EV_ABS ABS_MT_POSITION_X 00002dac
  5. [ 2514.550104] EV_ABS ABS_MT_POSITION_Y 000018ca
  6. [ 2514.550104] EV_KEY BTN_TOUCH DOWN
  7. [ 2514.550104] EV_ABS ABS_X 00002dac
  8. [ 2514.550104] EV_ABS ABS_Y 000018ca
  9. [ 2514.550104] EV_SYN SYN_REPORT rate
  10. [ 2514.638845] EV_ABS ABS_MT_TRACKING_ID ffffffff
  11. [ 2514.638845] EV_KEY BTN_TOUCH UP
  12. [ 2514.638845] EV_SYN SYN_REPORT rate

Android getevent用法详解的更多相关文章

  1. Android GLSurfaceView用法详解(二)

    输入如何处理       若是开发一个交互型的应用(如游戏),通常需要子类化 GLSurfaceView,由此可以获取输入事件.下面有个例子: java代码: package eoe.ClearTes ...

  2. Android Fragment用法详解(2)--动态添加Fragment

    在上一篇文章<Android Fragment用法详解(1)--静态使用Fragment>我们讲解了Fragment的最简单的用法.这次我们来说一说Fragment复杂一丢丢的用法.在代码 ...

  3. Android.mk用法详解

    一.Android.mk介绍 Android.mk是Android提供的一种makefile文件,用来指定诸如编译生成so库名.引用的头文件目录.需要编译的.c/.cpp文件和.a静态库文件等.要掌握 ...

  4. Android Fragment用法详解(1)--静态使用Fragment

    先说明一下,本例子是运行在Android Studio下面的.同样的代码复制粘贴到Eclipse运行却会报错.具体原因我也没有细查.知道的哥们,留言通知下呗. Fragment,也就是碎片,本意是为了 ...

  5. android: startActivityForResult用法详解

    一.如果想在Activity中得到新打开Activity 关闭后返回的数据,需要使用系统提供的startActivityForResult(Intent intent, int requestCode ...

  6. Android之canvas详解

    首先说一下canvas类: Class Overview The Canvas class holds the "draw" calls. To draw something, y ...

  7. 【转】Android Canvas绘图详解(图文)

    转自:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2012/1212/703.html Android Canvas绘图详解(图文) 泡 ...

  8. Android Studio 插件开发详解二:工具类

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78112856 本文出自[赵彦军的博客] 在插件开发过程中,我们按照开发一个正式的项 ...

  9. JMessage Android 端开发详解

    目前越来越多的应用会需要集成即时通讯功能,这里就为大家详细讲一下如何通过集成 JMessage 来为你的 App 增加即时通讯功能. 首先,一个最基础的 IM 应用会需要有哪些功能? 用户注册 / 登 ...

随机推荐

  1. HDU 4734 F(x) ★(数位DP)

    题意 一个整数 (AnAn-1An-2 ... A2A1), 定义 F(x) = An * 2n-1 + An-1 * 2n-2 + ... + A2 * 2 + A1 * 1,求[0..B]内有多少 ...

  2. S16课件

    Python之路,Day1 - Python基础1 介绍.基本语法.流程控制 Python之路,Day2 - Python基础2 列表.字典.集合 Python之路,Day3 - Python基础3  ...

  3. 2.spring cloud eureka client配置

    红色加粗内容表示修改部分 1.把server项目打成jar包并启动 在项目根目录cmd执行  mvn clean package -Dmaven.test.skip=true mavne仓库地址建议 ...

  4. 轮播图插件 SuperSlide2.1滑动门jQuery插件

    http://down.admin5.com/demo/code_pop/18/562/ SuperSlide2.1滑动门jQuery插件

  5. poj 1258 Agri-Net 最小生成树 prim算法+heap不完全优化 难度:0

    Agri-Net Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 41230   Accepted: 16810 Descri ...

  6. SpringXML方式配置bean的懒加载lazy-init

    lazy-init(懒加载),表示该bean在容器初始化的时候不进行初始化. 例如: <bean name="role1" class="com.fz.entity ...

  7. Java基础学习-接口-概述以及成员特点

    package interfaceclass; /*接口的概述: * 接口解决的问题: * 因为java中的继承的单一局限性(子类只能继承一个父类),为了打破这个局限,java语言提供了一个机制,接口 ...

  8. Xss测试

    <Script>alert(“XSS attack available!”);</Script>

  9. DOM 踩踩踩

    1.如果是想给一个DOM元素添加一个伪类,可以转换为  为这个元素添加一个类名,这个类名上面绑定一个伪类. 2.append一个元素,删除掉原来的元素再进行添加.

  10. C++题目(论述类)

    0.面向对象 三大特性:封装性.继承性.多态性 1.static  ①只进行一次初始化,而且保存在静态存储区,是在程序运行时就进行初始化了: ②当我们同时编译多个源文件(.c文件)时,所有未加stat ...