如何使用Android辅助功能服务的用户采取行动?

Ash*_*faq 13 android accessibility android-accessibility

我们已开始在https://developer.android.com/guide/topics/ui/accessibility/services.html上查看适用于Android的Building Accessibility Service .根据此文档,我们可以代表用户执行自定义手势,如"为用户执行操作"部分所述,网址https://developer.android.com/guide/topics/ui/accessibility/services.html#act-for -Users.我们根据此文档提出以下问题.

1)据我们了解,用户会执行手势,我们的代码会听.我们称这些听力手势.然后,我们的代码可以为用户执行手势.我们称这些表演手势.问题是表演手势的影响 - 触摸和探索层还是触摸和探索层下面?有关其他信息,触摸和探索是Android操作系统的功能,可由辅助功能服务请求.

2)Performing Gesture是否会触发通知Accessibility Service的任何AccessibilityEvent?如果是,如果Listening Gesture和Performing Gesture都是相同的,那么可能会有递归.那就是Listening Gesture可以向右滑动,触发一些事件.进行手势也可以说是向右滑动.现在,这也将依次触发相同的事件处理程序.

3)我们如何确定Performing Gesture成功执行?如果Performing Gesture发生在触摸和探索层下面,那么整个事情就具有重要意义.

任何帮助将不胜感激.

Chr*_*sCM 0

1) 不,利用辅助功能服务功能代表用户执行手势最终不会被视为“倾听”手势。AccessibilityService 实际上将手势发送到 API,该 API 以与屏幕完全相同的方式计算屏幕触摸,完全绕过屏幕。因此,这些事件对于辅助技术来说是不可见的。不过,如果您坚持引用,您当然可以自己从 AccessibilityService 调用这些手势的回调。因此,您执行的任何手势都不会触发触摸探索手势。事实上,您可以通过触摸探索手势来触发执行手势。

2)对我来说,这实际上是与问题 1 相同的问题。不,不是,因为问题 1 中的所有原因相同。

3)这个问题有两个答案。第一个是“dispatchGesture”返回一个布尔值。当操作系统在调度您的手势时没有遇到技术问题时,此布尔值为 true。例如,潜在的问题是: 您尝试在屏幕外进行交互。这对你来说太愚蠢了!哈哈。如果从此方法返回“true”,则您的手势通常是可接受的并且已执行。此时,我们可以确定手势是由用户自己实际执行的。这与操作系统中的逻辑完全相同...如果您不相信我,请亲自查看 AOSP :)

3B) 确保一切正常运行的唯一方法是观察您的手势在屏幕上执行的操作。