Android:如何在扩展SeekBar时从AccessibilityEvents中删除语音文本?

时间:2014-07-28 17:42:28

标签: android accessibility seekbar talkback

我的Android应用包含基于SeekBar的自定义滑块控件,我想在我的控件中附加自定义文字短语,以解释其对辅助功能的使用。

我使用View.setContentDescription(text)成功完成了此操作,当我请求从Activity.onCreate开始关注我的滑块控件时,TalkBack正确地说出了这句话。

到目前为止,这么好。但是,当我触摸控件时,我认为将AccessibilityFocus设置在我的Android API 16测试设备上,会在口头短语中添加额外的单词,即“寻求控制”。 0%'我想删除这些额外的单词。

我尝试使用event.getText().clear()中的View.onInitializeAccessibilityEvent(event)消除它们但没有成功。将事件回显给LogCat报告event.contentDescription中的正确短语,event.text中没有条目,但额外的单词同时出现在设备硬件的音频输出中以及<显示的屏幕调试文本中em>菜单 - &gt;设置 - &gt;辅助功能 - &gt; TalkBack-&gt;设置 - &gt;开发人员设置 - &gt;显示语音输出。

任何人都可以建议添加额外词语的位置,以及如何消除它们?

任何建设性的建议都会受到欢迎。感谢。

更新

我可以看到自定义控件上的一些触摸式触摸(初始单击)事件未通过其onInitializeAccessibilityEventdispatchPopulateAccessibilityEvent方法,因为我故意调用event.setContentDescription(null) 。尽管如此,我的自定义控件AccessibilityEvent生成ContentDescription,代码中设置为Activity.onCreate,加上我试图消除的额外字词。

我还在自定义控件的父AccessibilityDelegate上设置ViewGroup,以便查看其onRequestSendAccessibilityEvent来电。这确认没有包含我的ContentDescription的事件正在通过。

这非常令人费解,并且在模拟器和使用API​​ 16的真实硬件上都会发生。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我认为这是TalkBack中的一个错误,并且已经提出了Google Eyes-Free issue #375,包括示例代码。

更新:Google现已将此归档。链接已移至:http://code.google.com/archive/p/eyes-free/issues/375

答案 1 :(得分:1)