Android sendevent/getevent 用法

发布时间:2016-12-11 16:11:56 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"Android sendevent/getevent 用法",主要涉及到Android sendevent/getevent 用法方面的内容,对于Android sendevent/getevent 用法感兴趣的同学可以参考一下。

http://blog.csdn.net/kickxxx/article/details/7482392 getevent/sendevent源码 这两个命令的源码在system/core/toolbox/下,sendevent.c getevent.c getevent 使用getevent获得/dev/input/eventX设备汇报的事件,这个命令还会输出所有event设备的基本信息,如下: add device 1: /dev/input/event1   name:     "mxc_ts" add device 2: /dev/input/event0   name:     "mxckpd" 表明系统有两个event设备,分别对应着input设备touchscreen,keyboard Android可以使用sendevent来模拟触屏,键盘以及其他类型的event事件, sendevent /dev/input/eventX type code value /dev/input/eventX 对应一个event设备,可以通过getevent获得可用的event设备 type, code, value的定义可参看kernel/include/linux/input.h type如下定义 [html] view plaincopy /*    * Event types    */   #define EV_SYN          0x00   #define EV_KEY          0x01   #define EV_REL          0x02   #define EV_ABS          0x03   #define EV_MSC          0x04   #define EV_SW           0x05   #define EV_LED          0x11   #define EV_SND          0x12   #define EV_REP          0x14   #define EV_FF           0x15   #define EV_PWR          0x16   #define EV_FF_STATUS        0x17   #define EV_MAX          0x1f   #define EV_CNT          (EV_MAX+1)   一般来说,常用的是EV_KEY, EV_REL, EV_ABS, EV_SYN 分别对应keyboard, 相对坐标, 绝对坐标, 同步事件 EV_SYN则表示一组完整事件已经完成,需要处理,EV_SYN的code定义事件分发的类型 EV_SYN对应的code如下 [html] view plaincopy /*    * Synchronization events.    */   #define SYN_REPORT      0   #define SYN_CONFIG      1   #define SYN_MT_REPORT       2   EV_KEY的code比较多,这里就不列出来了,可参照input.h EV_REL对应的code [html] view plaincopy /*    * Relative axes    */   #define REL_X           0x00   #define REL_Y           0x01   #define REL_Z           0x02   #define REL_RX          0x03   #define REL_RY          0x04   #define REL_RZ          0x05   #define REL_HWHEEL      0x06   #define REL_DIAL        0x07   #define REL_WHEEL       0x08   #define REL_MISC        0x09   #define REL_MAX         0x0f   #define REL_CNT         (REL_MAX+1)   EV_ABS对应的code [html] view plaincopy /*    * Absolute axes    */      #define ABS_X           0x00   #define ABS_Y           0x01   #define ABS_Z           0x02   #define ABS_RX          0x03   #define ABS_RY          0x04   #define ABS_RZ          0x05   #define ABS_THROTTLE        0x06   #define ABS_RUDDER      0x07   #define ABS_WHEEL       0x08   #define ABS_GAS         0x09   #define ABS_BRAKE       0x0a   #define ABS_HAT0X       0x10   #define ABS_HAT0Y       0x11   #define ABS_HAT1X       0x12   #define ABS_HAT1Y       0x13   #define ABS_HAT2X       0x14   #define ABS_HAT2Y       0x15   #define ABS_HAT3X       0x16   #define ABS_HAT3Y       0x17   #define ABS_PRESSURE        0x18   #define ABS_DISTANCE        0x19   #define ABS_TILT_X      0x1a   #define ABS_TILT_Y      0x1b   #define ABS_TOOL_WIDTH      0x1c   #define ABS_VOLUME      0x20   #define ABS_MISC        0x28      #define ABS_MT_TOUCH_MAJOR  0x30    /* Major axis of touching ellipse */   #define ABS_MT_TOUCH_MINOR  0x31    /* Minor axis (omit if circular) */   #define ABS_MT_WIDTH_MAJOR  0x32    /* Major axis of approaching ellipse */   #define ABS_MT_WIDTH_MINOR  0x33    /* Minor axis (omit if circular) */   #define ABS_MT_ORIENTATION  0x34    /* Ellipse orientation */   #define ABS_MT_POSITION_X   0x35    /* Center X ellipse position */   #define ABS_MT_POSITION_Y   0x36    /* Center Y ellipse position */   #define ABS_MT_TOOL_TYPE    0x37    /* Type of touching device */   #define ABS_MT_BLOB_ID      0x38    /* Group a set of packets as a blob */   #define ABS_MT_TRACKING_ID  0x39    /* Unique ID of initiated contact */   #define ABS_MT_PRESSURE     0x3a    /* Pressure on contact area */      #define ABS_MAX         0x3f   #define ABS_CNT         (ABS_MAX+1)   input keyevent 如果想模拟按键,send event用起来比较繁琐,可以用input keyevent代替 下面是input keyevent几个比较常用的用法: input keyevent 3    // Home input keyevent 4    // Back input keyevent 19  //Up input keyevent 20  //Down input keyevent 21  //Left input keyevent 22  //Right input keyevent 23  //Select/Ok input keyevent 24  //Volume+ input keyevent 25  // Volume- input keyevent 82  // Menu 菜单 用senevent 模拟触屏事件 sendevent /dev/input/event1 0003 0000 0000015e    // ABS x 坐标 sendevent /dev/input/event1: 0003 0001 000000df    // ABS y 坐标 sendevent /dev/input/event1: 0001 014a 00000001   // BTN touch事件 值为1 sendevent /dev/input/event1: 0003 0018 00000000   // ABS pressure事件 sendevent /dev/input/event1: 0001 014a 00000000   // BTN touch事件 值为0 sendevent /dev/input/event1: 0000 0000 00000000   // sync事件

上一篇:Ubuntu 常用的快捷键
下一篇:23种设计模式(3):抽象工厂模式

相关文章

相关评论