Use Programming To Set Touch Input On Android
I want to use programming to mimic a 'touch' on a position (x, y) on the screen. I saw this link, but it only teaches you how to inject characters. I want to inject a touch at pos
Solution 1:
You can "fake" a touch event like this:
MotionEvent event = MotionEvent.obtain(downTime, eventTime, action, x, y, metaState);
view.onTouchEvent(event);
API Docs:
Create a new MotionEvent, filling in a subset of the basic motion values. Those not specified here are: device id (always 0), pressure and size (always 1), x and y precision (always 1), and edgeFlags (always 0).
Parameters:
downTime
The time (in ms) when the user originally pressed down to start a stream of position events. This must be obtained from SystemClock.uptimeMillis().eventTime
The the time (in ms) when this specific event was generated. This must be obtained fromSystemClock.uptimeMillis()
.action
The kind of action being performed -- one of eitherACTION_DOWN
,ACTION_MOVE
,ACTION_UP
, orACTION_CANCEL
.x
The X coordinate of this event.y
The Y coordinate of this event.metaState
The state of any meta / modifier keys that were in effect when the event was generated.
Solution 2:
That would be Monkeyrunner to do the job
Post a Comment for "Use Programming To Set Touch Input On Android"