7

我知道这是一个有点重复的问题。我已经查看了 SO 和其他几个网站上的各种问题,但找不到满足我需要的单一答案。

要求

1)我有 X,Y 坐标,我想创建 MotionEvent 并将其分派到最顶层的活动/视图。

2)我必须将它注入我自己的应用程序中。所以不需要 Inject_Events 权限

3)虽然我有坐标,但我不知道那个位置的活动或视图。所以 Activity.dispatchTouchEvent 对我不起作用。. (view.dispatchTouchEvent 可以工作,但我不知道视图)。

4) Instrumentation 也无济于事,因为它们没有单一的方法在 x,y 位置注入触摸事件。

5) InputManager 有隐藏方法 injectInputEvent 但我不知道如何访问 injectInputEvent 并编译它?

任何帮助表示赞赏!

4

2 回答 2

5
dispatchTouchEvent(MotionEvent.obtain(
                    SystemClock.uptimeMillis(), SystemClock.uptimeMillis(),
                    MotionEvent.ACTION_DOWN, Xinput, Yinput, 0));

您不需要指定视图,事件将注册到前台活动。将 Xinput 和 Yinput 替换为您的值。

于 2013-09-10T17:33:45.977 回答
1

为了更大的群体的利益 - rootViewController.dispatchTouchEvent(而不是 activity.rootViewController)就像一个魅力。

于 2013-09-10T12:51:46.237 回答