10

Can we execute touch event programmatically in android by some method, such as passing screen co-ordinates(x,y)? Is there any such method? Please guide me.

Waynn Lue
  • 11,344
  • 8
  • 51
  • 76
kunal
  • 103
  • 1
  • 1
  • 4

4 Answers4

19

I am not sure if it works, but try this:

MotionEvent event = MotionEvent.obtain(downTime, eventTime, action, 
                                       x, y, pressure, size, 
                                       metaState, xPrecision, yPrecision, 
                                       deviceId, edgeFlags);
onTouchEvent(event);
onexf
  • 3,674
  • 3
  • 22
  • 36
Dmytro Danylyk
  • 19,684
  • 11
  • 62
  • 68
2

You could call

View.onTouchEvent (MotionEvent)

when you know the destination

When you want to address some child or grand-child,

View.dispatchTouchEvent (MotionEvent)

is better

However, you have to supply an self crafted motion event. The MotionEvent holds the coordinates, too.

stefan bachert
  • 9,413
  • 4
  • 33
  • 40
2

You can try using dispatchTouchEvent and give it MotionEvent instance like below

dispatchTouchEvent(MotionEvent.obtain(downTime, eventTime, action, x, y, pressure, size, metaState, xPrecision, yPrecision, deviceId, edgeFlags))

you can find more help in this link

http://developer.android.com/reference/android/app/Activity.html#dispatchTouchEvent%28android.view.MotionEvent%29

Hakem Zaied
  • 14,061
  • 1
  • 23
  • 25
-3

There is a special method for this:

View.performClick()
Vladimir Ivanov
  • 42,730
  • 18
  • 77
  • 103