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 position (x, y)
How do I do this using Android SDK (which is java)?
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:
downTimeThe time (in ms) when the user originally pressed down to start a stream of position events. This must be obtained from SystemClock.uptimeMillis().eventTimeThe the time (in ms) when this specific event was generated. This must be obtained fromSystemClock.uptimeMillis().actionThe kind of action being performed -- one of eitherACTION_DOWN,ACTION_MOVE,ACTION_UP, orACTION_CANCEL.xThe X coordinate of this event.yThe Y coordinate of this event.metaStateThe state of any meta / modifier keys that were in effect when the event was generated.
That would be Monkeyrunner to do the job
来源:https://stackoverflow.com/questions/30245179/use-programming-to-set-touch-input-on-android