是否可以通过坐标或视图元素模拟“点击”(触摸屏)?
问问题
17853 次
4 回答
5
可以在安卓屏幕上模拟触摸事件。如果您有视图的坐标,则可以使用 adb shell 命令生成触摸事件。例如-
adb shell 输入点击 xy
其中 x 和 y 是您的坐标。您可以从终端运行此命令。如果您想从 android 代码运行命令,请使用“/system/bin/ input tap x y”并使用 Runtime.getRuntime() 方法运行它。详情请回复,乐于助人!:)
于 2017-11-29T12:20:34.160 回答
2
正如azdev 建议的那样,试试这个:
view.setOnTouchListener(new OnTouchListener()
{
public boolean onTouch(View v, MotionEvent event)
{
Toast toast = Toast.makeText(
getApplicationContext(),
"View touched",
Toast.LENGTH_LONG
);
toast.show();
return true;
}
});
// Obtain MotionEvent object
long downTime = SystemClock.uptimeMillis();
long eventTime = SystemClock.uptimeMillis() + 100;
float x = 0.0f;
float y = 0.0f;
// List of meta states found here: developer.android.com/reference/android/view/KeyEvent.html#getMetaState()
int metaState = 0;
MotionEvent motionEvent = MotionEvent.obtain(
downTime,
eventTime,
MotionEvent.ACTION_UP,
x,
y,
metaState
);
// Dispatch touch event to view
view.dispatchTouchEvent(motionEvent);
于 2013-05-20T10:32:36.973 回答
1
大概你有一些你想通过点击来调用的东西。所以......如果它是一个实际的按钮,你可以调用performClick()
它。如果它不是一个按钮,那么只要满足您期望的条件,就调用您希望执行的任何方法。如果您提供更多关于您实际尝试做的事情的详细信息,这可能会有所帮助。
于 2013-05-20T10:28:21.823 回答
0
在视图上,是的。通过坐标,一个Java机器人,我不知道。
例如:
Button buttonFoo = (Button)findViewById(R.id.button_foo);
buttonFoo.performClick();
于 2013-05-20T10:26:24.023 回答