Android:捕捉并拦截所有手势

Android: Catch and intercept all gestures

我正在为自定义 rom (Android 9) 构建自定义启动器,所以我有启动器的 root、系统 uid,甚至可以访问更改 android 源。 我想构建可在任何应用程序中随时使用的自定义手势。 所以我必须有能力倾听所有的手势,也许还有拦截它们的能力。

据我所知,可以在开发者设置中显示所有触摸事件,但它是如何实现的?此代码位于何处?或者还有其他地方可以监听触摸事件吗?

一些注意事项: 我尝试构建自定义辅助功能服务,它仅适用于点击事件,但我需要触摸事件。

how is it done? where this code is located?

对于android9,指针位置在PhoneWindowManager#enablePointerLocation中启用。 WindowManagerService 为 PhoneWindowManager 提供内部 API registerPointerEventListener。所以它可以获得所有的输入事件。 mWindowManagerFuncs.registerPointerEventListener(mPointerLocationView)

is there any other place where I can listen for touch event?

如果您可以修改框架并构建您的自定义 rom,那么您可以将相同的 API 添加到 WindowManager,然后您的应用程序可以调用这个新的 API 来监听触摸事件。