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

问题描述 投票:12回答:1

我们已经开始在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发生在触摸和探索层下面,那么整个事情就具有重要意义。

任何帮助将不胜感激。

android accessibility android-accessibility
1个回答
0
投票

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

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

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

3B)确保事情正常的唯一方法是观察你的手势在屏幕上采取行动。

© www.soinside.com 2019 - 2024. All rights reserved.