Android getevent/sendevent详解
来源:互联网 发布:淘宝卖家图片处理软件 编辑:程序博客网 时间:2024/06/02 01:16
getevent&sendevent 是android系统下的一个工具,可以模拟多种按键和触屏操作,产生的是raw event,raw event经过event hub处理产生最终的gesture事件。
=== getevent ===
getevent 监控当前的事件,鼠标事件,按键事件,拖动滑动等
dd device 1: /dev/input/event0
name: "qwerty2"
/dev/input/event0: 0001 001e 00000001
/dev/input/event0: 0001 001e 00000000
其中/dev/input/event0是device的名字 0001是type, 001e是键码, 最后一个根据type不同而不同
比如上面的倒数第二条就是按下a键的keydown,最后一个是按下a的keyup
具体的type,code,value的定义可以在源码/frameworks/base/core/java/android/view/KeyEvent.java中找到
/dev/input/event1: 0001 009e 00000001
/dev/input/event1: 0001 009e 00000000
009e 扫描码, 00000001 按下, 00000000 抬起
=== sendevent ===
命令格式2:adb shell sendevent [device] [type] [code] [value]
发送时间,格式和上面的一样,需要注意的是在get中code显示的是十六进制,而send中需要用十进制,例如
# sendevent /dev/input/event0 1 5 1
这个命令就是发送数字4的keydown消息,所以在屏幕上就会一直打印出很多个4(因为没有发送keyup)
如: adb shell sendevent /dev/input/event0 1 229 1 代表按下按下menu键
adb shell sendevent /dev/input/event0 1 229 0 代表按下松开menu键
说明:上述的命令需组合使用
另外所知道的命令如下:
Key Name CODE
MENU 229
HOME 102
BACK (back button) 158
CALL (call button) 231
END (end call button) 107
2. 发送鼠标事件(Touch):
命令格式:adb shell sendevent [device] [type] [code] [value]
情况1:在某坐标点上touch
如在屏幕的x坐标为40,y坐标为210的点上touch一下,命令如下
adb shell sendevent /dev/input/event0 3 0 40
adb shell sendevent /dev/input/event0 3 1 210
adb shell sendevent /dev/input/event0 1 330 1 //touch
adb shell sendevent /dev/input/event0 0 0 0 //it must have
adb shell sendevent /dev/input/event0 1 330 0 //untouch
adb shell sendevent /dev/input/event0 0 0 0 //it must have
注:以上六组命令必须配合使用,缺一不可
情况2:模拟滑动轨迹(可下载并采用aPaint软件进行试验)
如下例是在aPaint软件上画出一条开始于(100,200),止于(108,200)的水平直线
adb shell sendevent /dev/input/event0 3 0 100 //start from point (100,200)
adb shell sendevent /dev/input/event0 3 1 200
adb shell sendevent /dev/input/event0 1 330 1 //touch
adb shell sendevent /dev/input/event0 0 0 0
adb shell sendevent /dev/input/event0 3 0 101 //step to point (101,200)
adb shell sendevent /dev/input/event0 0 0 0
…………………… //must list each step, here just skip
adb shell sendevent /dev/input/event0 3 0 108 //end point(108,200)
adb shell sendevent /dev/input/event0 0 0 0
adb shell sendevent /dev/input/event0 1 330 0 //untouch
adb shell sendevent /dev/input/event0 0 0 0
C:\Users\maoyongx>adb shell sendevent /dev/input/event2 3 47 0|adb shell sendevent /dev/input/event2 3 57 12|adb shell sendevent /dev/input/event2 3 53 360|adb shell sendevent /dev/input/event2 3 54 1180|adb shell sendevent /dev/input/event 2 0 0 0
- Android getevent/sendevent详解
- Android getevent/sendevent详解
- Android getevent/sendevent详解
- Android getevent/sendevent详解
- Android getevent/sendevent详解
- Android getevent/sendevent用法详解
- getevent sendevent 详解
- Android sendevent/getevent 用法
- Android sendevent/getevent 用法
- Android sendevent/getevent 用法
- Android sendevent/getevent 用法
- Android sendevent/getevent 用法
- Android sendevent/getevent 用法
- Android sendevent/getevent 用法
- Android sendevent/getevent 用法
- Android sendevent/getevent 用法
- Android sendevent/getevent 用法
- Android sendevent/getevent 用法
- 菜鸟学Java:对于 java 静态变量的理解
- ant 中使用ant-Plugin插件进行文件的copy
- J2EE集群原理
- ArcGIS使用ASTER GDEM V2 全球数字高程数据进行水文分析
- hard example
- Android getevent/sendevent详解
- 用户记录
- 进度条的实现
- 在安装Linux系统的时候一直出现
- 大显高木模具:中望CAD机械版高效解决统计难题
- istringstream类、ostringstream类、stringstream类的用法
- C++类中的静态成员变量和静态成员函数的作用
- HTML加载
- 小明养猪的故事