遥控器输入


遥控器输入

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

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

控制器概述

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

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

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

按钮

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

遥控器
遥控器

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

捕获输入

与任何安卓输入设备一样,所有 Amazon Fire TV 遥控器都会为按键按下动作生成 KeyEvent 事件。您可以使用标准的安卓事件侦听器接口和回调(onClick()onFocusChange() 等)处理控制器按钮输入。Amazon Fire TV 遥控器和语音遥控器都不会引发动作事件(来自安卓 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(),以便其他控件可以管理它。

输入事件参考

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

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

按钮 键事件 默认行为
主页 将用户返回到主屏幕。这是一个系统事件,无法拦截。
后退 KEYCODE_BACK 将用户返回到上一个操作或屏幕(活动)。
菜单 KEYCODE_MENU 调用安卓上下文菜单 (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 在媒体播放上下文中快进或向前跳转。