Android: Как создать MotionEvent?

MotionEvent не получает конструктора, я хотел вручную создать MotionEvent в своем модульном тесте, а затем, как это получить? Благодарю.

Solutions Collecting From Web of "Android: Как создать MotionEvent?"

Вы должны использовать один из статических методов MotionEvent класса MotionEvent для создания нового события.

Самый простой способ (помимо обертывания нового события из существующего):

 static public MotionEvent obtain(long downTime, long eventTime, int action, float x, float y, int metaState) { 

Документы API :

Создайте новый MotionEvent, заполнив подмножество основных значений движения. Те, которые не указаны здесь: id устройства (всегда 0), давление и размер (всегда 1), точность x и y (всегда 1) и edgeFlags (всегда 0).

Параметры :

  • downTime Время (в мс), когда пользователь изначально нажал, чтобы начать поток событий позиции. Это должно быть получено из SystemClock.uptimeMillis ().
  • eventTime Время (в мс), когда это конкретное событие было сгенерировано. Это должно быть получено из SystemClock.uptimeMillis() .
  • action Вид действия – один из ACTION_DOWN , ACTION_MOVE , ACTION_UP или ACTION_CANCEL .
  • X Координата X этого события.
  • Y Координата Y этого события.
  • metaState Состояние любых ключей мета / модификатора, которые были действительны при создании события.

Ссылка на API-документы