Use programming to set touch input on android

后端 未结 2 671
佛祖请我去吃肉
佛祖请我去吃肉 2021-01-22 14:37

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

2条回答
  •  别那么骄傲
    2021-01-22 14:46

    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 from SystemClock.uptimeMillis().
    • action The kind of action being performed -- one of either ACTION_DOWN, ACTION_MOVE, ACTION_UP, or ACTION_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.

    Link to API Docs

提交回复
热议问题