我知道如何“合成”一个MotionEvent:
event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_DOWN, x, y, 0);
我所坚持的是如何通过系统“发送/发布/发布/分发”它,以便“真实”用户实际用手指触摸屏幕时处理它。
这有可能吗?
如果是这样,我该如何做到这一点?
答案 0 :(得分:17)
您要做的事情完全可能而且简单:
void simulateEventDown( View v, long x, long y )
{
MotionEvent e = MotionEvent.obtain( SystemClock.uptimeMillis(),
SystemClock.uptimeMillis(),
MotionEvent.ACTION_DOWN,
x, y, 0);
v.dispatchTouchEvent(e);
}
答案 1 :(得分:4)
不,它被设计阻止了。关注的是这样的特征可以用来颠覆整个安全模型 - 例如通过“注入”触摸来联系市场,安排安装,接受安全警告......所有这些都是独立的。
已经对此进行了详细讨论here及以下内容。
如果这回答了您的问题,请点击左侧的复选标记 - 谢谢!