2013-05-20 37 views
2

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

+0

这个“模拟”会产生什么? –

+0

例如: 如果我的应用是一个计算器,我想要“编程”,请按“2”“+”“3”和“=” 即模拟按下这4个按钮。也就是说,用户将看到没有按下“2”按钮单独按下,然后“+”... – TyrionLannister

回答

0

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

例如:

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

您可以使用

View.performClick(); 
1

想必你有,你想通过点击来调用的东西。所以......如果它是一个实际的按钮,你可以拨打它performClick()。如果它不是一个按钮,那么只要调用您希望执行的方法,就可以满足您期望的条件。如果你提供了一些关于你实际想要做什么的细节,这可能会有所帮助。

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

它可以模拟的Android屏幕上的触摸事件。如果您具有视图的坐标,则可以使用adb shell命令生成触摸事件。对于e.g-

亚行外壳输入抽头x和y

其中x和y是你的坐标。你可以从终端运行这个命令。如果你想从android代码运行该命令,那么使用“/ system/bin /输入tap x y”并使用Runtime.getRuntime()方法运行该命令。详情请回复,乐意帮忙! :)

相关问题