【发布时间】:2014-05-07 15:47:48
【问题描述】:
当我从 arduino(通过蓝牙)接收到特定字符串时,我想要做的是在我的活动的特定区域触发 ontouch 事件。我试图用wii和arduino构建一个控制器,以在我自己编写的游戏中使用。
在你回答这个问题之前,我已经知道有一个函数 * openButton.performClick();为此,但在游戏中我并不总是使用按钮,所以它不好。
我想模拟 adb 用猴子做的触摸,但没有 root 权限 像注入触摸只是没有根。
这是代码的一部分:
int[] loc = new int[2];
openButton.getLocationOnScreen(loc);// get the region where to simulate the //touch event
xTest = (float)loc[0];
yTest = (float)loc[1];
@SuppressLint("Recycle") void testing(){
long downTime = SystemClock.uptimeMillis();
long eventTime = SystemClock.uptimeMillis() + 100;
float x = xTest;
float y = yTest;
int metaState = 0;
MotionEvent motionEvent = MotionEvent.obtain(
downTime,
eventTime,
MotionEvent.ACTION_UP,
x,
y,
metaState
);
dispatchTouchEvent(motionEvent);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
int action = event.getAction();
switch (action & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_UP:
// do something
openButton.performClick();
break;
case MotionEvent.ACTION_MOVE:
// do something
// how to trigger a ACTION_DOWN event here?
break;
}
return false;
}
所以我得到一个特定的字符串,我想在屏幕上的特定区域以编程方式模拟触摸事件,这次它是一个按钮,但它可能是其他东西,这就是为什么“view.performclick()”不好. 我已经看到了一些示例,他们在 dispatchTouchEvent 之前放置视图,如果我这样做,我会收到错误 提前感谢您的帮助
【问题讨论】:
标签: android touch-event eventtrigger