问题标签 [android-accessibility]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
945 浏览

android - 初始化时如何防止 Spinner 公告

背景

片段创建它的视图,然后开始网络操作。网络操作完成后,根据网络操作的结果,创建各种类型的子视图并将其添加到片段的视图中。

问题

如果 aSpinner被片段添加,它的初始值由 TalkBack 宣布。这是非常不可取的,因为 Spinner 通常深埋在表单中。

失败的解决方案

我试过了:

  1. 包装 addView 与setImportantForAccessibility
  2. 不设置初始Spinner值(在任何情况下都不是可接受的解决方案)但添加时仍会宣布初始值
  3. Spinner's设置contentDescription为不间断空格,然后在onAttachedToWindow*中添加和恢复它

问题

Spinner在最初创建片段之后创建并动态添加。如何防止 TalkBack 宣布 的初始值Spinner

0 投票
3 回答
1677 浏览

android - TalkBack:防止选择被遮挡的视图

不良对讲图像

在上图中,您可以看到 TalkBack 选择了一个完全被遮挡的标签。如果我再次点击,则将选择顶部的整个面板(将其设置为可聚焦),这是所需的行为。

如何防止 TalkBack 选择完整(或部分)隐藏视图进行公告?

至少,我如何强制对讲首先选择顶部/模糊视图?

0 投票
1 回答
494 浏览

android-uiautomator - Android 无障碍服务在进行 adb uiautomator 转储时重新启动

我为我的项目创建了自定义无障碍服务。一旦启用,它就会运行良好并服务于我的目的。我需要为某些要求转储。但是当我使用 adb uiautomator 命令进行转储时,Android 系统正在禁用并重新启用辅助功能服务。我没有在任何地方发现这种行为。是否有任何解决方法可以阻止 Android 系统禁用服务?

0 投票
1 回答
342 浏览

java - 处理程序作为方法参数

为什么有些 api 将处理程序作为方法参数?有哪些可能的用例?具体来说,我需要有人解释为什么我们需要 dispatchgesture 方法中的处理程序。我正在尝试使用此 dispatchgesture 方法代表用户执行拖动操作。

0 投票
0 回答
172 浏览

android - 如何知道 android accessibilty 服务何时断开连接?

我写了一个无障碍服务。连接时

被调用。但是有时服务会死掉并且没有

扩展 AccessibilityService 时的方法。我怎么知道什么时候提示用户无障碍服务已经死了,你需要把它重新打开?

0 投票
1 回答
255 浏览

android - 如何使用 AccessibilityInfo 在任何应用程序的任何视图上阅读文本?

我正在尝试使用 AccessibilityInfo 类读取任何应用程序的 ListView 中的每个项目。问题是我通过使用以下代码获取 ListView 内的项目总数:



但是我没有在 ListView 中获取项目的名称,例如让一个 ListView 中有 5 个文本视图,然后我想从该 TextView 中获取文本。我尝试使用以下方法进一步破坏 nodeInfo 对象:



所以我在 ListView 中获取 TextView 的值时做错了什么,

或者

不可能吗?

0 投票
1 回答
3077 浏览

android - 在 Android 中使用 Accessibility Service 获取 Activity 的布局名称

我正在尝试创建一个应用程序来获取其他应用程序的包名称、活动名称和活动布局名称 (XML)。为此,我使用辅助功能服务来获取前台窗口的 WINDOW_STATE_CHANGED。

我取得了什么成就?

我可以使用辅助功能服务获取其他应用程序的包名称和活动名称。

我无法实现的!

我已经尝试了几乎所有可能的解决方案来获取 Activity 的布局名称,但不幸的是,我每次连续尝试都失败了。

到目前为止我已经尝试过:

步骤1:

在res/xml文件夹下创建了accessibilityservice.xml,如下所示

第2步:

创建WindowChangeDetectingService.java服务类并记录包名称和活动,如下所示

第 3 步:注册 WindowChangeDetectingService 在 manifest.xml 中创建,如下所示

输出:(从 Logcat 检索)

我的要求:(预期输出)

自过去两天以来,我一直在研究此要求,但无法在 Android 中使用 Accessibility Service 找到任何方法或方法来实现此要求。任何帮助或建议都会对我很有帮助。提前致谢。

0 投票
0 回答
558 浏览

android - 对讲:三星错过了“双击”(ACTION_CLICK)

我正在尝试添加自定义 ACTION_CLICK 文本。这就是我正在做的:

在 Nexus 上运行良好,点击后提示:“123 文本按钮,双击做某事”。

但在三星 Galaxy s6 上,我听到以下内容:“123 文本按钮”。

我的自定义操作无效:(它是在设备设置中的某个位置配置的,还是我需要指定其他内容?三星的语音助手在哪里“隐藏”这个“双击”?提前致谢!

0 投票
1 回答
2096 浏览

android - 为什么 AccessibilityService 的 onAccessibilityEvent(..) 方法多次读取同一个视图?

我正在使用 AccessibilityService 来确定在 android 设备中运行的任何当前应用程序的视图的文本和坐标。在每个事件 onAccessibilityEvent(...) 运行,但我不知道如何控制这些事件。我使用 event.getSource() 来获取每个窗口内容更改的结果。我的 AccessibilityService 的 xml 设置是:

并且 onAccessibilityEvent(...) 是:

我得到的输出是(我用粗体突出显示了文本值:

现在你可以看到它只为 1 个视图运行了 3 次但我希望它只为一个视图运行一次。请帮我找出我怎样才能做到这一点?

我已经尝试将xml中的accessibilityEventTypes的值从“typeAllMasks”更改为“typeWindowContentChanged”和“typeViewFocused”,但没有任何帮助。

我还尝试在 AccessibilityService 的 onAccessibilityEvent(...) 中设置标志,但这也没有奏效,因为该服务每次都在运行(如果有人能让它工作,那就太好了)。

请告诉我如何让它工作!

0 投票
2 回答
547 浏览

android - Android Espresso 辅助功能检查失败

我正在尝试在 Android Studio 中运行 Espresso 测试(用 Kotlin 编写)并启用AccessibilityChecks ,如此所述。

在此处输入图像描述

当我尝试在测试中使用 AccessibilityChecks 时,我收到以下错误:

如果我尝试将其移至文档中提到的 Before 类:

在此处输入图像描述

然后它将因错误“空测试套件”而失败:

在此处输入图像描述