安卓注入触摸事件

7

我知道这个问题有点重复了。我在 Stack Overflow 和其他几个网站上查阅了各种问题,但没有找到一个能满足我的需求的答案。

需求

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

2)我必须将其注入到我自己的应用程序中,因此不需要 Inject_Events 权限

3)虽然我有坐标,但我不知道哪个位置对应的是 Activity 或 View。所以 Activity.dispatchTouchEvent 对我无效。(view.dispatchTouchEvent 可以工作,但我不知道 View )。

4)Instrumentation 也无法帮助,因为它们没有单独的方法来在 x、y 位置注入触摸事件。

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

感谢任何帮助!

2个回答

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

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


1
为了更好地服务于大众 - rootViewController.dispatchTouchEvent(而不是activity.rootViewController)非常有效。

如何获取rootViewController? - Behnam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接