我在真机上测试模拟点击,我按照网上的说法这样做   情况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
但是模拟失败,为什么啊?实现不了点击啊!

解决方案 »

  1.   

    首先真机上不一定是 /dev/input/event0 用cat获得的设备对应event信息:# cat /proc/bus/input/devicesI: Bus=0000 Vendor=0000 Product=0000 Version=0000
    N: Name="qtouch-touchscreen"
    P: Phys=
    S: Sysfs=/devices/virtual/input/input5
    U: Uniq=
    H: Handlers=event5
    B: EV=b
    B: KEY=400 0 4 0 0 0 0 0 0 0 0
    B: ABS=2750000 11030003其次,数据不是3 0 40 ...
    #adb shell getevent /dev/input/event5 > getvalue 可以得到: 0003 0035 000007c8
     0003 0036 00000771
     0003 0038 00000001
     0000 0002 00000000
     0003 0037 00000010
     0000 0000 00000000
    具体看下:http://blog.csdn.net/yiyaaixuexi/article/details/6574001