使用远程控制Android电视应用程序

时间:2017-08-30 14:58:34

标签: android android-tv google-tv d-pad

我正在为电视开发Android应用程序 当我试图在真正的Android TV中测试它时 我无法使用遥控器按钮导航到任何按钮或任何东西 上,下,左,右。

我搜索过它,我发现我必须使用(启用D-pad导航),但我不知道如何使用它,我没有找到任何代码或教程 我的申请很简单。它使动态布局彼此相邻,每个布局只有一个按钮和一个循环视图。

2 个答案:

答案 0 :(得分:2)

默认情况下,Android实现从布局分布推断的基本D-Pad导航。如果您主要使用列表或线性布局,它的效果非常好。

关键区别在于视图处于聚焦状态而不是选中状态,因此如果您使用自定义背景,即按钮,它看起来可能看起来不起作用,而实际上它是。

您可以使用键盘上的光标键在模拟器上试用它。

或者,如果推断的导航不起作用,您可以定义每个视图的nextFocusUp,Down,Left和Right。

在官方文件中对此进行了很好的解释:https://developer.android.com/training/tv/start/navigation.html

答案 1 :(得分:1)

尝试一下

@Override
    public boolean onKeyDown(int keyCode, KeyEvent events) {
        switch (keyCode) {
            case KeyEvent.KEYCODE_DPAD_CENTER:

                break;
            case KeyEvent.KEYCODE_DPAD_LEFT:

                break;
            case KeyEvent.KEYCODE_DPAD_RIGHT:

                break;
            case KeyEvent.KEYCODE_DPAD_DOWN:

                break;
            case KeyEvent.KEYCODE_DPAD_UP:

                break;
            case KeyEvent.FLAG_KEEP_TOUCH_MODE:

                break;
        }
        return super.onKeyDown(keyCode, events);
    }

如果调用不是上面的getInside,则尝试以下操作:

  @Override
    public boolean dispatchKeyEvent(KeyEvent event) {
        switch (event.getKeyCode()) {
            case KeyEvent.KEYCODE_DPAD_CENTER:

                break;
            case KeyEvent.KEYCODE_DPAD_DOWN:

                break;
            case KeyEvent.KEYCODE_DPAD_UP:

                break;
            case KeyEvent.KEYCODE_DPAD_RIGHT:

                break;
            case KeyEvent.KEYCODE_DPAD_LEFT:

                break;
            case KeyEvent.FLAG_KEEP_TOUCH_MODE:

                break;
        }
        return super.dispatchKeyEvent(event);
    }