抖音接口授权是什么东西 抖音直播实时数据接口( 四 )



抖音接口授权是什么东西 抖音直播实时数据接口


这个方法会执行两个关键操作:
  1. 调用 ViewRootImpl 的 setAccessibilityFocus 方法将自身设置为 focus,然后调用 invalidate() 触发重绘操作,ViewRootImpl 会在 onPostDraw 方法中执行 drawAccessibilityFocusedDrawableIfNeeded 来绘制绿框 。

抖音接口授权是什么东西 抖音直播实时数据接口


  1. 调用 sendAccessibilityEvent 方法,将 TYPE_VIEW_ACCESSIBILITY_FOCUSED 事件发送出去,这个事件被 talkback 接收后,会调用朗读引擎 TTS 读出 View 的内容,实现了无障碍模式下对触摸区域内容的播报 。
无障碍功能实现实例
  • Case 1:无障碍模式下点击 View 播报“未加标签”
解决方案:在该 View 的 android:contentDescription 属性上设置需要播报的 String 。
  • Case 2:焦点过多,需要删除多余焦点或需要某个 View 能够进行播报
解决方案:将不需要播报的 View 的 android:importantForAccessibility 属性设置为 no,将需要播报的 View 的该属性设置为 yes 。
  • Case 3:无障碍模式下在上层页面点击仍能选中下层 View
解决方案:将下层的根 View 的 android:importantForAccessibility 属性设置为”noHideDescendants”
  • Case 4:使用的自定义 Toast 不播报内容
解决方案:在自定义 Toast 展示的时候,主动发送一个 AccessibilityEvent 事件
mText.postDelayed(new Runnable() {@Override public void run() {mText.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_HOVER_ENTER);}}, 1);设置延时是为了避免不生效的问题 。
  • Case 5:设置自定义 View 的播报内容
解决方法:override View 的 onPopulateAccessibilityEvent()方法 。
举例:设置自定义 View 开/关状态(已开启/已关闭)的播报内容 。
@Overridepublic void onPopulateAccessibilityEvent(AccessibilityEvent event) {super.onPopulateAccessibilityEvent(event);final CharSequence text = isChecked() ? "已开启" : "已关闭";if (text != null) {event.getText().add(text);}}
  • Case 6:设置自定义 View 播报的控件类型及选中状态
解决方法:使用 AccessibilityDelegate
ViewCompat.setAccessibilityDelegate(targetView, new AccessibilityDelegateCompat() {@Overridepublic void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info) {super.onInitializeAccessibilityNodeInfo(host, info);info.setRoleDescription("标签类型");//设置播报的标签类型info.setCheckable(true);info.setChecked(checked);//设置播报的被选中状态}});加入我们【抖音接口授权是什么东西 抖音直播实时数据接口】欢迎加入抖音-关系与服务团队,我们专注于抖音多个核心业务场景的落地与迭代,在业务、架构、技术等方面都有投入,期待你的加入!

推荐阅读