【发布时间】:2011-10-06 12:58:30
【问题描述】:
我想知道 SwipePad 和 Wave Launcher 等应用程序如何能够仅通过服务检测触摸手势/事件。这些应用程序能够检测到触摸手势,即使它不在它们自己的 Activity 中。我查看了整个互联网,但没有找到他们如何做到这一点。
我的主要问题是服务如何监听触摸访客/事件,就像常规 Activity 可能接收 MotionEvents 一样,即使它可能不在原始 Activity 或上下文中。我本质上是在尝试构建一个应用程序,该应用程序将识别用户的特定触摸手势,而不管哪个 Activity 在顶部,并在识别该手势时执行某些操作。触摸识别将是作为服务在后台运行的线程。
【问题讨论】:
-
SwipePad 看起来可能只是为可触摸区域而不是整个屏幕使用透明的系统警报窗口。
-
我有同样的问题,我从三天前开始尝试解决。问题是我需要在前台服务类下收集点击的触摸事件数据。你能帮我在这里回答我的问题吗:stackoverflow.com/questions/65405516/…
-
这个问题是很久以前的了。从那以后,我了解到我自己的问题的前提不是很好。服务本身不能接收任何触摸事件,因为它不是 UI 组件。有一些 hacky 方法涉及使用系统警报窗口标志来创建由服务启动的视图。但 Android 不鼓励这种方法,并且随着 Android 11 中 Bubbles API 的引入而有效地停止使用。
标签: android events service touch gesture