【发布时间】:2015-05-14 18:56:51
【问题描述】:
我想使用编程来模拟屏幕上某个位置 (x, y) 上的“触摸”。
我看到了this链接,但它只教你如何注入字符。
我想在 (x, y) 位置注入一个触摸
如何使用 Android SDK(即 java)做到这一点?
【问题讨论】:
标签: java android android-activity touch android-sdk-tools
我想使用编程来模拟屏幕上某个位置 (x, y) 上的“触摸”。
我看到了this链接,但它只教你如何注入字符。
我想在 (x, y) 位置注入一个触摸
如何使用 Android SDK(即 java)做到这一点?
【问题讨论】:
标签: java android android-activity touch android-sdk-tools
你可以像这样“伪造”一个触摸事件:
MotionEvent event = MotionEvent.obtain(downTime, eventTime, action, x, y, metaState);
view.onTouchEvent(event);
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任何元的状态/
有效的修饰键
事件的生成时间。【讨论】:
那将是 Monkeyrunner 来完成这项工作
【讨论】: