如何覆盖辅助功能 class 名称

How to override Accessibility class name

我想阻止 TalkbackButton 视图宣布 class 名称。为此,我编写了以下逻辑,但它不起作用

fun setAccessibilityDelegate(view: Button?) {
    view?.setAccessibilityDelegate(object : View.AccessibilityDelegate() {
        override fun onInitializeAccessibilityNodeInfo(host: View?, info: AccessibilityNodeInfo?) {
            super.onInitializeAccessibilityNodeInfo(host, info)
            info?.contentDescription = getContentDesStartWatching()
            info?.className = ""
        }
    })
}

实际描述:"start watching button, Button double tap to activate"

预期描述:“开始观看按钮,双击激活

注意: 无法将内容描述更改为 "start watching",因为它正在从后端检索

这对我有用,使用 AccessibilityDelegateCompat 而不是 AccessibilityDelegate

科特林代码:

fun setAccessibilityDelegate(view: View) {
    ViewCompat.setAccessibilityDelegate(view, object: AccessibilityDelegateCompat() {
        override fun onInitializeAccessibilityNodeInfo(host:View,
                                                       info: AccessibilityNodeInfoCompat) {
            super.onInitializeAccessibilityNodeInfo(host, info)
            info.className = null
            info.contentDescription = getContentDesStartWatching()
        }
    })
}