1. debug android camera 的过程中,需要复现bug,想到使用个脚本,别的项目已有此脚本,主要过程如下:
adb shell am start com.android.camera/com.android.camera.Camera
adb shell input keyevent 23 //
adb shell input keyevent 3 //home 键
2. 但在一MSM8960的手机中,使用input keyevent 23 无效。
想到使用touch 事件。
a. 通过getevent 得到对手机的操作事件。
b. 把其中的16进制转换为10进制
c. 由于是多点,可以删除一些事件。
在其中出现的事件:
#define ABS_MT_POSITION_X 0x35 /* Center X ellipse position */
#define ABS_MT_POSITION_Y 0x36 /* Center Y ellipse position */
#define ABS_MT_TRACKING_ID 0x39 /* Unique ID of initiated contact */
#define ABS_MT_PRESSURE 0x3a /* Pressure on contact area */
0x35,0x36 :x,y 坐标值
0x3a:接触工具对接触面的压力大小
0x39:用来区分是第几指上报上来的坐标,
目前手机拍照的事件如下:
22 adb shell sendevent /dev/input/event3 3 57 102
23 adb shell sendevent /dev/input/event3 3 57 0
24 adb shell sendevent /dev/input/event3 3 53 367
25 adb shell sendevent /dev/input/event3 3 54 1199
26 adb shell sendevent /dev/input/event3 3 58 40
27 adb shell sendevent /dev/input/event3 0 0 0
28 adb shell sendevent /dev/input/event3 3 53 361
29 adb shell sendevent /dev/input/event3 3 54 1198
30 adb shell sendevent /dev/input/event3 3 58 44
31 adb shell sendevent /dev/input/event3 0 0 0
32 adb shell sendevent /dev/input/event3 3 54 1197
33 adb shell sendevent /dev/input/event3 3 58 42
34 adb shell sendevent /dev/input/event3 0 0 0
35 adb shell sendevent /dev/input/event3 3 53 370
36 adb shell sendevent /dev/input/event3 3 54 1196
37 adb shell sendevent /dev/input/event3 3 58 41
38 adb shell sendevent /dev/input/event3 0 0 0
39 adb shell sendevent /dev/input/event3 3 53 369
40 adb shell sendevent /dev/input/event3 3 58 38
41 adb shell sendevent /dev/input/event3 0 0 0
42 adb shell sendevent /dev/input/event3 3 57 42949667295
43 adb shell sendevent /dev/input/event3 0 0 0