我知道这是一个有点重复的问题。我在 SO 和其他几个网站上查看了各种问题,但找不到满足我需要的单一答案。
要求
1) 我有 X,Y 坐标,我想创建 MotionEvent 并将其分派(dispatch)到最顶层的 Activity/ View 。
2) 我必须将它注入(inject)到我自己的应用程序中。因此,不需要 Inject_Events 权限。
3) 虽然我有坐标,但我不知道那个位置的 Activity 或 View。所以 Activity.dispatchTouchEvent 对我不起作用。。 (view.dispatchTouchEvent 可以工作,但我不知道 View )。
4) Instrumentation 也无济于事,因为他们没有单一方法在 x,y 位置注入(inject)触摸事件。
5) InputManager 有隐藏方法 injectInputEvent 但我不知道如何访问 injectInputEvent 并编译它?
感谢任何帮助!
最佳答案
dispatchTouchEvent(MotionEvent.obtain(
SystemClock.uptimeMillis(), SystemClock.uptimeMillis(),
MotionEvent.ACTION_DOWN, Xinput, Yinput, 0));
你不需要指定view,事件会注册到前台activity。用您的值替换 Xinput 和 Yinput。
关于Android 注入(inject)触摸事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18711397/