问题标签 [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 投票
1 回答
2225 浏览

android - Android 切换 textOn/Off 防止从 Talkback 读取

我有一个SwitchCompat带有文本的 as 切换(HQ/LQ 用于不同质量的流)。对于视力好的用户,我认为这意味着什么是显而易见的。但是我很难找到一个好的解决方案来使其易于访问。

我已经为SwitchCompat一般设置了 ContentDescription

并希望在每次SwitchCompat切换时设置一个 contentDescription 。

但即使使用 contentDescription,textOn/textOff 标志也将通过Talkback导致类似“Quality high HQ switch”之类的内容被读取。有什么方法可以禁用 textOn/textOff 属性的读取,以便只向用户读取 contentDescription?

0 投票
3 回答
4148 浏览

android - 如何向 AccessibilityService 发送自定义事件?

我的程序目的:触发服务中的 BACK 按钮

我尝试了很多方法,没有人可以达到这个目的,最后我发现了AccessibilityService,它可能是实现这个功能的最可能的方法。

我创建了这个 AccessibilityService,并测试了它是有效的

然后我试图转移performGlobalAction到服务,但它没有执行该操作。

我也尝试以不同的方式发送自定义事件,但没有人可以发送到 MyAccessibilityService

如何向 MyAccessibilityService 发送自定义事件或消息,以便我可以识别事件和消息以执行操作?

0 投票
1 回答
105 浏览

android - Android 字幕管理器返回无效值

我正在尝试与 Android 的内置辅助功能支持集成以增强隐藏式字幕。

如果我尝试访问全局设置中的值,我会得到无效的负整数值。例如,

CaptioningManager.CaptionStyle.backgroundColor

返回

-65536

相似地,

CaptioningManager.edgeColor 返回

-16777216

这似乎是因为本机实现中的十六进制转换错误。有没有人遇到过类似的问题,如果有,如何解决?

0 投票
1 回答
7482 浏览

android - 如果其他应用程序的无障碍服务已开启,Android 无障碍服务将无法正常工作

我正在为我的 Android 应用程序使用辅助功能服务来读取网络运营商的弹出窗口。如果仅为我的应用程序打开辅助功能服务,它就可以正常工作。如果我为其他一些 Android 应用程序打开它,onAccessibilityEvent()则根本不起作用。

清单代码:

可访问性类:

0 投票
2 回答
1729 浏览

android - 我如何将我的应用程序放在可访问性权限列表 Android 操作系统之上?

在此处输入图像描述

大家好!我正在构建一个使用可访问性权限的应用程序,我要求运行时用户根据 Android 开发人员指南授予此权限。但是我的应用程序始终显示在辅助功能设置屏幕列表的底部,请参阅屏幕截图我的应用程序是“MyAccessibilityService”,而其他应用程序如 Jugnoo、Makhichoose .. 始终出现在顶部,即使我取消安装它们并在第一次安装我的应用程序然后再次安装它们,我尝试了所有迭代结果都是一样的。所以还有一些其他的事情 android OS 如何管理这个列表,意味着它是如何排序的?我怎样才能让我的应用程序出现在顶部?请帮忙。

0 投票
2 回答
17927 浏览

java - 如何读取窗口内容(使用accessibilityService)并在Android中使用draw over other app权限唤起UI?

一个关于同一主题的问题不够清楚,被社区搁置,后来被自动删​​除。因此,我正在详细解释该问题,以便社区可以更好地理解和帮助。

我想要类似于Voodoo 应用程序MySmartPrice提供的功能。

现在他们做什么

第 1 步:当我们第一次打开 Voodoo 应用程序时,它们会显示一个小教程。在教程结束时,有一个“立即激活”按钮,按下该按钮会将我们带到辅助功能设置屏幕。

第 2 步:在辅助功能屏幕中,它进一步指导如何查找和禁用 Voodoo 服务。

第 3 步:当我们启用它时,它会进一步要求授予“观察您的操作”和“检索窗口内容”权限。

第 4 步:一旦我们在可访问性屏幕上授予权限,并移动到某个购物应用程序或通过浏览器访问购物网站并到达产品页面,就会自动弹出一个 voodoo 浮动按钮。

第 5 步:一旦我们点击它,它会显示在其他应用程序或网站上可用的相同/相关/相似产品的价格,以便用户可以检查可用的最佳交易。

Voodoo 参考截图

巫毒屏幕 1

辅助功能屏幕

辅助功能屏幕 2

权限授予屏幕

巫毒屏幕 2

产品页面上的 Voodoo 浮动按钮

借助其他应用程序绘制 Voodoo 结果

现在我想从社区中了解:

  1. 如何在辅助功能屏幕和产品详细信息页面上显示我的帮助 UI。
  2. 如何检测产品页面何时出现在屏幕上并唤起我的浮动按钮。
  3. 如何获取屏幕上显示的产品名称。
  4. 如何仅针对某些应用程序限制此屏幕阅读功能?(因为我不想最终遇到一些版权问题)
  5. 有什么教程可以帮助我吗?尽管我已经在 Google 上尝试过任何直接教程,但没有取得任何成功。

现在为什么我需要这些信息:

我正在为学生计划一个应用程序,如果它在我的服务器上或在一些可用的网络位置上可用,它将帮助他们免费获得所需的(或类似的)书籍(电子书)。由于某些书籍的版权问题,我只想将其功能限制为某些应用程序。

现在我从关于这个主题的研究中了解到(但我不确定我是否走在正确的轨道上)

0 投票
1 回答
920 浏览

android - 在 Espresso 测试中与 SeekBar 虚拟视图交互

我正在尝试与SeekBarEspresso 测试中的控件进行交互。具体来说,我想单击“节点”的位置,其中节点是可拖动拇指可以捕捉到的位置。

UI 树不了解SeekBar内部结构。似乎不可能使用 Espresso 直接针对其中一个节点;它所看到的只是一个SeekBar.

相反,我想知道是否可以使用现有的辅助功能树来支持 TalkBack。该uiautomatorviewer工具确认此树包含每个节点的虚拟视图。每个虚拟视图都有一个内容描述。

uiautomatorviewer

我的目标是在匹配器中控制其中一个虚拟视图并对其执行click。就像是...

whereonVirtualView将类似于onView. 我不知道如何以编程方式访问此辅助功能树以及是否可以触发对其进行操作。有人可以阐明这种技术的可行性吗?

我知道设置进度值的方法(Espresso - Set SeekBar)。我试图避免这种方法,因为我希望测试能够灵活地更改插槽数中的数量。

0 投票
0 回答
115 浏览

android - 通过键盘控制 Android 可访问性系统范围的缩放?

我正在开发一个基于可访问性的应用程序,它允许用户使用蓝牙键盘免提使用该应用程序。我现在需要的是让用户能够在应用程序(可能还有整个 android 系统)中使用某些组合键(比如 Ctrl+Alt+?)进行放大和缩小。

缩放应该类似于 android 可访问性设置的放大手势功能。该放大在三次点击以激活(我想通过某个组合键激活)并使用两根手指滑动(这可能将是键盘上的方向键)。

我发现与做这样的事情甚至远程相关的唯一一件事是 Android Accesibility Service。但我不认为它让我得到键盘组合键然后放大屏幕。

我们有什么办法可以在 Android 中做到这一点?我是否需要去 AOSP 并制作自己的 Android OS 版本?请帮忙!

0 投票
0 回答
163 浏览

android - 当 Talk Back 开启时,自定义视图中的双击触摸事件不会返回正确的坐标

我正在尝试通过 android 中的 Talk back 功能使我的应用程序更易于访问。回话正常工作,除非我双击自定义视图,触摸事件总是返回相同的坐标 x: 336 , y: 519 。我都试过了event.getRawX(),当我双击时它总是返回 x: 360 。但有趣的是,如果我用两根手指敲击它会返回正确的值。

当 Talk Back 开启时,是否有任何解决方案或技巧可以在自定义视图上的双击触摸事件上获得正确的坐标???

这是示例代码。

0 投票
0 回答
209 浏览

android - Window Overlay 将返回按钮事件从服务发送到其他应用程序的前台 Activity

我有一项服务可以在其他应用程序上创建一个窗口覆盖。我正在通过布局上的 dispatchKeyEvent 处理服务中的后退按钮按下。我怎样才能将此事件(后按)传递给前台应用程序(其他应用程序,不是我的)?