是否可以模拟Android屏幕上的点击?

时间:2013-05-20 10:23:27

标签: android click touchscreen

是否可以通过坐标或视图元素模拟“点击”(触摸屏)?

5 个答案:

答案 0 :(得分:2)

可以在Android屏幕上模拟触摸事件。如果您拥有视图的坐标,则可以使用adb shell命令生成触摸事件。例如 -

adb shell输入tap x y

其中x和y是你的坐标。您可以从终端运行此命令。如果你想从android代码运行命令,那么使用“/ system / bin / input tap x y”并使用Runtime.getRuntime()方法运行它。详情请回复,乐意为您服务! :)

答案 1 :(得分:1)

大概你有一些你希望通过点击调用的东西。所以...如果它是一个真正的按钮,你可以在它上面调用performClick()。如果它不是一个按钮,那么只要满足您希望执行的任何方法,即满足您期望的条件。如果你提供一些关于你真正想做的事情的更多细节,这可能会有所帮助。

答案 2 :(得分:1)

作为azdev suggests,试试这个:

    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);

答案 3 :(得分:0)

在视图上,是的。通过坐标,一个Java机器人,不是我所知道的。

例如:

Button buttonFoo = (Button)findViewById(R.id.button_foo);
buttonFoo.performClick();

答案 4 :(得分:-2)

您可以使用

View.performClick();