替换整个announcemnt为"双击以在启用对讲时激活

时间:2017-05-18 01:49:24

标签: android android-accessibility

启用对讲并点击我的应用中的某个元素视图后,公告正在背诵:

我包含的说明,暂停,然后它背诵:"双击激活"

我在这里找到的示例中使用了Accessibility委托: https://stackoverflow.com/a/39480983/5544859

但它只替换了我的最后一个字而不是整个句子。

例如,它说:Bla Bla bla。 (暂停),然后双击"自定义字符串"

我想替换整个句子。

2 个答案:

答案 0 :(得分:1)

此短语来自TalkBack,无法通过设计进行配置。 TalkBack正试图在所有应用中提供一致的用户体验。

答案 1 :(得分:-2)

选中此项:https://stackoverflow.com/a/39480983/2042341

将其粘贴到此处: 在API 21+中,您可以通过在View的AccessibilityNodeInfo上设置自定义操作来自定义操作名称。有两种方法:1)设置AccessibilityDelegate并覆盖onInitializeAccessibilityNodeInfo委托方法或2)扩展视图的类并覆盖onInitializeAccessibilityNodeInfo。

无论哪种方式,您将构建一个新的AccessibilityAction并使用AccessibilityNodeInfo.addAction在节点上设置它。

如果您选择使用委托,则应为点击操作设置自定义说明,如下所示:

view.setAccessibilityDelegate(new AccessibilityDelegate() {
  @Override
  public void onInitializeAccessibilityNodeInfo(
     View v, AccessibilityNodeInfo info) {
     super.onInitializeAccessibilityNodeInfo(v, info);

    // A custom action description. For example, you could use "pause"
    // to have TalkBack speak "double-tap to pause."
    CharSequence description = getResources().getText(R.string.my_click_desc);
    AccessibilityAction customClick = new AccessibilityAction(AccessibilityAction.ACTION_ACTION_CLICK, description);
    info.addAction(customClick);
  }
});

如果您的应用程序针对API< 21,替换相应的* Compat支持库方法。该功能未向后移植,因此您无法获得有关API的自定义说明< 21,但您可以避免在应用程序代码中进行显式版本检查。