Android getevent/senevent
来源:互联网 发布:淘宝手机注册账号申请 编辑:程序博客网 时间:2024/05/18 01:59
本文转自:http://blog.csdn.net/lichaoandy/article/details/6565893
getevent&sendevent 是android系统下的一个工具,可以模拟多种按键和触屏操作,产生的是raw event,raw event经过event hub处理产生最终的gesture事件。
=== getevent ===
getevent 监控当前的事件,鼠标事件,按键事件,拖动滑动等
The getevent tool runs on the device and provides information about input devices and a live dump of kernel input events.
It is very useful tool for ensuring that device drivers are reporing the expected set of capabilities for each input device and are generating the desired stream of input events.
getevent使用方法
Usage: getevent [-t] [-n] [-s switchmask] [-S] [-v [mask]] [-p] [-q] [-c count] [-r] [device]
-t: show time stamps
-n: don't print newlines
-s: print switch states for given bits
-S: print all switch states
-v: verbosity mask (errs=1, dev=2, name=4, info=8, vers=16, pos. events=32)
-p: show possible events (errs, dev, name, pos. events)
-q: quiet (clear verbosity mask)
-c: print given number of events then exit
-r: print rate events are received
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中找到
=== 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
参考:
http://topic.csdn.net/u/20100326/17/1f0fc5a1-3bd2-4294-aa35-1bcb73357aa3.html
http://www.51testing.com/html/65/n-215865-2.html
- Android getevent/senevent
- Android getevent/senevent
- Android getevent/senevent
- Android getevent/senevent
- Android getevent/senevent
- Android getevent/senevent
- Android getevent/senevent
- Android getevent/senevent
- Android getevent/senevent
- Android getevent/senevent
- Android getevent/senevent
- Android sendevent/getevent 用法
- Android sendevent/getevent 用法
- Android getevent/sendevent详解
- Android sendevent/getevent 用法
- android getevent/setevent
- Android sendevent/getevent 用法
- Android sendevent/getevent 用法
- 电信增值短信平台模块清单
- 马云重构阿里:或分拆成30家公司 整合3家上市
- 关于图片存储格式的整理(BMP)
- ARM芯片的启动程序的分析和总结
- C#高低文菜单(右键菜单)ContextMenuStrip用法总结
- Android getevent/senevent
- 《火星人敏捷开发手册2012-12-25》版发布:松结对编程
- TD
- AS3的垃圾回收
- nmon 性能:分析 AIX 和 Linux 性能的免费工具
- android Animation 动画效果
- 错误:hdfs.DFSClient: Exception in createBlockOutputStream java.io.IOException:
- 【每日一贴】(第12期)C++虚函数表
- PowerDesigner 常用设置