Android注入触摸事件

Jai*_*ken 7 android touch motionevent

我知道这是一个有点重复的问题.我已经回顾了关于SO和其他几个网站的各种问题,但找不到满足我需求的单一答案.

需求

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

2)我必须在我自己的应用程序中注入它.因此不应该要求Inject_Events权限.

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

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

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

任何帮助赞赏!

kea*_*eag 5

dispatchTouchEvent(MotionEvent.obtain(
                    SystemClock.uptimeMillis(), SystemClock.uptimeMillis(),
                    MotionEvent.ACTION_DOWN, Xinput, Yinput, 0));
Run Code Online (Sandbox Code Playgroud)

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


Jai*_*ken 1

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