android - 在服务中获取触摸事件(坐标、运动事件等)

标签 android events service touch gesture

如何使用 public boolean onTouchEvent(MotionEvent event) 像您从 Activity 那样获取触摸事件?服务中显然没有可覆盖的 onTouchEvent 方法,那么我该怎么做呢?是否有直接的方法或可靠的解决方法?

我的想法是创建一个服务,在后台监听用户做出特定手势,然后在用户做出正确手势时执行某些操作。谢谢!

编辑:这个问题旨在回答这个 question .

最佳答案

您可以创建一个 0x0 View 并将其添加到服务的窗口中,作为始终位于顶部的系统对话。

您可以使用 'WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH' 权限监听事件。不幸的是,您只能获得初始触摸事件,而不能将事件传递给较低的 Activity 。我很高兴你实际上不能那样做;你能想象恶意软件会如何利用它来获取用户的凭据。

关于android - 在服务中获取触摸事件(坐标、运动事件等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6704026/

相关文章:

android - 为什么这个线程阻塞了我的 Android APP?

java - 在触摸监听器中执行工作,然后将其委托(delegate)给前一个监听器

Dockerfile, 如何安装 snap, snapd : unrecognized service

java - Andengine VS Unity

android - 杀死一个应用程序,Android 在这个过程中走的路是正确的吗?

c++ - 如何在 MFC 中设置菜单项旁边的复选标记?

c++ - 如何捕捉鼠标键盘操作

android - SDK 中的 Android 服务问题 >= 26

java - 查找平均位置并删除其他位置:

java - Android 应用程序 - 保存状态