Android 注入(inject)触摸事件

标签 android touch motionevent

我知道这是一个有点重复的问题。我在 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/

相关文章:

android - 添加 ScrollView 时出错

android - 闹钟管理器取消不工作 Android

android - 如何将 MediaRecorder 中的视频方向更改为纵向

java - Libgdx 输入处理器无法正常工作

android - 奇怪的跳跃在 Android MotionEvent 触摸位置

android - event.getAction() 从不使用 MotionEvent.ACTION_UP

java - 避免在 Android 中合并 ACTION_MOVE MotionEvents

android - 如果仅安装了面部作为生物特征,则使用 AndroidX.Biometric 的 KeyGeneration 会失败

wpf - 有没有办法在 WPF ScrollViewer 中启用触摸滚动?

touch - 如何将hammer.js 与 Angular.js 结合使用