android - 如何通过系统发送合成的MotionEvent?

标签 android events

我知道如何“合成”一个 MotionEvent:

  event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_DOWN, x, y, 0);

我遇到的问题是如何通过系统“发送/发布/触发/分发”它,以便处理它时“就好像”真正的用户用他或她的手指实际触摸了屏幕一样。

这可能吗?

如果是这样,我该如何实现?

最佳答案

您尝试做的事情完全可行且简单:

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

关于android - 如何通过系统发送合成的MotionEvent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5240287/

相关文章:

asp.net - log4Net EventlogAppender 不适用于 Asp.Net 2.0 网站?

java - ksoap2 发送复杂对象时出错

android - 能够连接到服务器的设备白名单

android - 如何滚动到 ListView 中新添加的项目

div 子级的 jQuery 调整大小事件

c# - 在一天中的特定时间触发事件的好方法?

android - 我怎样才能停止外面的计时器。就像我点击倒计时方法之外的按钮?

java - 在新的 Android 5.0 中,方法 TextView.getTextColor(Context context, TypedArray typedArray, int defStyle) 在哪里消失了?

wpf - 在 WPF 和 F# 中组合事件(或者,我要疯了吗?)

javascript - 有没有办法将所有双击事件绑定(bind)到 jQuery/JavaScript 中的单击等效项?