在可访问性模式(对讲)中未调用dispatchKeyEvent

时间:2019-05-10 04:59:21

标签: android accessibility android-tv talkback

我有一个自定义的线性布局类,可以在其中动态添加子级。 并通过覆盖dispatchKeyEvent方法处理通过电视遥控器(D-Pad键)进行的导航。 当我们启用对讲服务dispatchKeyEvent时,不会得到呼叫,并且子级导航也不如预期。

我尝试覆盖dispatchPopulateAccessibilityEvent,但仅获得TYPE_VIEW_FOCUSED,而不是d-pad键。

根据d-pad键将焦点移至下一个可聚焦的孩子。

public boolean dispatchKeyEvent(KeyEvent event) {
    boolean keyeventHandled = super.dispatchKeyEvent(event);
    int action = event.getAction();
    int keycode = event.getKeyCode();
    if (action == KeyEvent.ACTION_DOWN) {
        switch (keycode) {
            case KeyEvent.KEYCODE_DPAD_RIGHT:
                //Code to move focus to next children
            case KeyEvent.KEYCODE_DPAD_LEFT:
                //Code to move focus to previous children
        }
    }
    return keyeventHandled;
}

是否可以在talkback打开的情况下捕获d-pad按键事件?

0 个答案:

没有答案