对安卓电视应用程序使用遥控器

Posted

技术标签:

【中文标题】对安卓电视应用程序使用遥控器【英文标题】:using remote control for android TV application 【发布时间】:2018-02-08 08:45:28 【问题描述】:

我正在为电视开发一个 android 应用程序 当我尝试在真正的 Android TV 中对其进行测试时 我无法使用遥控器按钮导航到任何按钮或任何东西 上、下、左、右。

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

【问题讨论】:

见:developer.android.com/training/keyboard-input/… 【参考方案1】:

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

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

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

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

官方文档中解释的很好:https://developer.android.com/training/tv/start/navigation.html

【讨论】:

【参考方案2】:

试试这个,

@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);
    

【讨论】:

以上是关于对安卓电视应用程序使用遥控器的主要内容,如果未能解决你的问题,请参考以下文章

如何连接安卓智能电视盒?

Imagebutton 安卓电视

tcl怎么用手机控制

安卓Tv开发移动智能电视之焦点控制(触控事件)

H5活动全屏滚动页面在安卓智能电视TV调试

H5活动全屏滚动页面在安卓智能电视TV调试