Android getevent/sendevent/input使用方法
2017-11-23 20:45
363 查看
Android getevent/sendevent/input使用方法
Android geteventsendeventinput使用方法getevent
sendevent
input
1.getevent
getevent旨在获取android设备的事件信息;getevent源码alsp/system/core/toolbox/getevent.c,以及详细使用方法如下:
$adb shell getevent -h Usage: getevent [-t] [-n] [-s switchmask] [-S] [-v [mask]] [-d] [-p] [-i] [-l] [-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,props=64) -d: show HID descriptor, if available -p: show possible events (errs, dev, name, pos. events) -i: show all device info and possible events -l: label event types and names in plain text -q: quiet (clear verbosity mask) -c: print given number of events then exit -r: print rate events are received
获取event设备详细信息,硬件可能不同,信息可能不准确:
$adb shell cat /proc/bus/input/devices $adb shell getevent -i
显示格式为:device:type code value,即设备,事件类型,键值类别,具体数值;
具体定义可从kernel-3.18/include/linux/input.h中获得;
$adb shell getevent /dev/input/event6: 0002 0000 00000001 /dev/input/event6: 0002 0006 00027506
举例获取power键值信息
$adb shell getevnet /dev/input/event2 0001 0074 00000001 //按下 0000 0000 00000000 0001 0074 00000000 //抬起 0000 0000 00000000 $adb shell getevnet -l /dev/input/event2 EV_KEY KEY_POWER DOWN //按下 EV_SYN SYN_REPORT 00000000 EV_KEY KEY_POWER UP //抬起 EV_SYN SYN_REPORT 00000000
2.sendevent
sendevent可以向设备发送模拟事件,其中包括touch和keypress。sendevent源码alsp/system/core/toolbox/sendevent.c,以及详细使用方法如下:
$adb shell sendevent -h use: sendevent device type code value
值得注意的是getevent获取的数值是16进制,sendevent使用的是10进制的,需要进行转换;
模拟power键,sendevent较复杂,很少使用;
$adb shell sendevent /dev/input/event2 0001 116 1 $adb shell sendevent /dev/input/event2 0000 0 0 $adb shell sendevent /dev/input/event2 0001 116 0 $adb shell sendevent /dev/input/event2 0000 0 0
3.input
$adb shell input Usage: input [<source>] <command> [<arg>...] The sources are: keyboard mouse joystick touchnavigation touchpad trackball dpad stylus gamepad touchscreen The commands and default sources are: text <string> (Default: touchscreen) keyevent [--longpress] <key code number or name> ... (Default: keyboard) tap <x> <y> (Default: touchscreen) swipe <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen) press (Default: trackball) roll <dx> <dy> (Default: trackball)
模拟power键,keycode键值可查看 alsp/frameworks/base/core/java/android/view/KeyEvent.java;
$adb shell input keyevent 26 //26是power键的键值;
点击屏幕
$adb shell input tap 100 800
滑动屏幕
$adb shell swipe 100 600 900 600 //Y轴不动,左右滑; $adb shell swipe 500 0 500 1000 //X轴不动,上下滑;
相关文章推荐
- [Android]getevent,sendevent,input命令的使用
- Android getevent sentevent input命令使用
- [android] 调试linux input子系统驱动的用户空间命令 getevent/sendevent
- Android getevent,sendevent,input keyevent
- android之getevent/sendevent/input
- android getevent、sendevent、input keyevent 使用说明
- Android getevent/sendevent的使用
- Android HTTP实例 使用GET方法和POST方法发送请求
- input设备使用方法和input_event说明
- getevent/sendevent 使用说明
- android测试之getevent/sendevent
- Android sendevent/getevent 用法
- Android 下收发input事件的工具 getevent 和 sendevent
- getevent/sendevent 使用说明
- Android使用getWritableDatabase()和getReadableDatabase()方法
- android测试之getevent/sendevent
- Android sendevent/getevent 用法 | 分析
- Android HTTP实例 使用GET方法和POST方法发送请求
- Android HTTP实例 使用GET方法和POST方法发送请求
- Android:onTouchEvent方法的使用