开发人员控制台

遥控器输入


遥控器输入

对于所有遥控器而言,所有按钮、Android事件和行为指南都是相同的,但语音搜索(麦克风)按钮除外,该按钮仅适用于某些遥控器。

有关所有受支持控制器的按钮行为的建议指南,请参阅控制器行为指南。有关处理Amazon Fire游戏控制器输入的信息,请参阅Amazon Fire游戏控制器输入

控制器概述

Amazon Fire TV平台支持来自Amazon Fire TV遥控器、Fire TV语音遥控器、Fire游戏控制器和其他支持蓝牙HID游戏手柄配置文件的游戏控制器的用户输入。所有控制器都必须与要使用的设备配对。

所有Amazon Fire TV控制器均为Android输入设备。您使用与任何其他Android输入设备相同的技术和API来管理这些设备的输入。

特别是,任何控制器的简单输入(如导航或选择)可以通过键盘事件进行管理,就像处理键盘或按钮控制器的输入一样。

按钮

大多数Amazon Fire TV遥控器都有这些按钮。某些Fire TV遥控器不包含麦克风(语音搜索)按钮。

遥控器
遥控器

Fire TV Edition的遥控器具有一些额外的按钮,例如调高/调低音量、电源、Netflix、Amazon Prime和其他应用。但是,这些按钮无法映射到第三方应用中的事件,因此上面Fire TV遥控器中显示的按钮实际上与Fire TV Edition遥控器的可用按钮相同,即使这两种遥控器看起来稍有不同。

捕获输入

与任何Android输入设备一样,所有Amazon Fire TV遥控器都会为按键按下动作生成KeyEvent事件。您可以使用标准的Android事件侦听器接口和回调(onClick()onFocusChange()等)处理控制器按钮输入。Amazon Fire TV遥控器和语音遥控器都不会引发动作事件(来自Android MotionEvent类)。

如需捕获View中的特定按钮按下事件,请覆盖输入事件处理程序,如onKeyDown()。测试KeyEvent类的输入常量以捕获特定键。

例如,要捕获向左、向右和中心方向键按钮(以及游戏控制器上的A按钮),请使用以下代码:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
boolean handled = false;

switch (keyCode){
case KeyEvent.KEYCODE_DPAD_CENTER:
case KeyEvent.KEYCODE_BUTTON_A:
        // ... 处理选择
        handled = true;
        break;
case KeyEvent.KEYCODE_DPAD_LEFT:
        //... 处理左动作
        handled = true;
        break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
        //... 处理右动作
        handled = true;
        break;
}
return handled || super.onKeyDown(keyCode, event);
}

与所有输入事件一样,侦听器方法应该返回true以捕获事件并进行处理,或者将该事件传递给super.onKeyDown(),以便其他控件可对其进行管理。

输入事件参考

下表描述了按钮、Android KeyEvent常量以及这些按钮的默认行为。任何Amazon Fire TV遥控器都不会引发动作事件(来自Android MotionEvent类)。

如果不捕获特定输入事件,则会发生默认行为。

按钮 键事件 默认行为
主页 将用户返回到主屏幕。这是一个系统事件,无法拦截。
后退 KEYCODE_BACK 将用户返回到上一个操作或屏幕(活动)。
菜单 KEYCODE_MENU 调用Android上下文菜单(OptionsMenu)。
麦克风(搜索)(仅限语音遥控器) 调用系统语音搜索。这是一个系统事件,无法拦截。
选择(方向键中心) KEYCODE_DPAD_CENTER 选择具有当前焦点的用户界面项。
向上(方向键) KEYCODE_DPAD_UP 在用户界面中将焦点上移。
向下(方向键) KEYCODE_DPAD_DOWN 在用户界面中将焦点下移。
向左(方向键) KEYCODE_DPAD_LEFT 在用户界面中将焦点左移。
向右(方向键) KEYCODE_DPAD_RIGHT 在用户界面中将焦点右移。
播放/暂停 KEYCODE_MEDIA_PLAY_PAUSE 控制媒体播放。播放/暂停是一个切换。
倒回 KEYCODE_MEDIA_REWIND 在媒体播放情景中倒回或向后跳转。
快进 KEYCODE_MEDIA_FAST_FORWARD 在媒体播放上下文中快进或向前跳转。