android - 如何更改双击和长按的 Android 对讲指令

标签 android accessibility talkback android-a11y

我有一个具有长按操作处理程序的 View 。我使用内容描述来设置当 View 获得焦点时 Talkback 说话的消息。

目前它在获得焦点后立即显示我的内容描述,并在短暂的停顿后显示:

Double tap to activate, double tap and hold for long press

我想把这个消息改成类似的东西

Double tap to "action 1", double tap and hold for "action 2"

有办法吗?

我查看了 onPopulateAccessibilityEvent(),它获得了 TYPE_VIEW_ACCESSIBILITY_FOCUSED 事件,但我无法更改所需的消息。

我是不是漏掉了一些简单的东西?

最佳答案

自从 alanv 发布他的答案以来,AccessibilityAction 似乎发生了轻微的变化。这是一个使用 ViewCompat 的有效解决方案:

ViewCompat.setAccessibilityDelegate(view, new AccessibilityDelegateCompat() {
    @Override
    public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info) {
        super.onInitializeAccessibilityNodeInfo(host, info);
        // A custom action description. For example, you could use "pause"
        // to have TalkBack speak "double-tap to pause."
        CharSequence description = host.getResources().getText(R.string.my_click_desc);
        AccessibilityActionCompat customClick = new AccessibilityActionCompat(
                    AccessibilityNodeInfoCompat.ACTION_CLICK, description);
        info.addAction(customClick);
    }
});

关于android - 如何更改双击和长按的 Android 对讲指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39455917/

相关文章:

KitKat 中的 Android WebView 可访问性

android - TalkBack 读取时间错误

Android:您可以向 Instant App 模块添加 Activity 吗?

android - 监控用户何时启用/禁用移动数据

Android Studio - 工具栏的抽屉切换不打开抽屉

android - onKeyEvent 和无障碍服务

ios - 呈现新 View 时如何控制默认选择的画外音元素是什么?

android - 如何获得 Activity 在 Android 的前台 Activity 的时间

html - 使用标题属性截断文本的可访问性

android - 亚行可访问性重点变更