遥控器输入
对于所有遥控器而言,所有按钮、Android事件和行为指南都是相同的,但语音搜索(麦克风)按钮除外,该按钮仅适用于某些遥控器。
有关所有受支持控制器的按钮行为的建议指南,请参阅控制器行为指南。有关处理Amazon Fire游戏控制器输入的信息,请参阅Amazon Fire游戏控制器输入。
控制器概述
亚马逊Fire TV平台支持来自亚马逊Fire TV遥控器、Fire TV语音遥控器、Fire游戏控制器和其他支持蓝牙HID游戏手柄配置文件的游戏控制器的用户输入。所有控制器都必须与要使用的设备配对。
所有亚马逊Fire TV控制器均为Android输入设备。您使用与任何其他Android输入设备相同的技术和API来管理这些设备的输入。
特别是,任何控制器的简单输入(如导航或选择)可以通过键盘事件进行管理,就像处理键盘或按钮控制器的输入一样。
按钮
大多数亚马逊Fire TV遥控器都有这些按钮。某些Fire TV遥控器不包含麦克风(语音搜索)按钮。


一些遥控器具有一些额外的按钮,例如调高/调低音量、电源、Netflix、Amazon Prime和其他应用。但是,无法将这些按钮映射到第三方应用中的事件。
捕获输入
与任何Android输入设备一样,所有亚马逊Fire TV遥控器都会为按键按下动作生成KeyEvent事件。您可以使用标准的Android事件侦听器接口和回调(onClick()、onFocusChange()等)处理控制器按钮输入。亚马逊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常量以及这些按钮的默认行为。任何亚马逊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 | 
      在媒体播放上下文中快进或向前跳转。 | 
| 向上切换频道 | KEYCODE_CHANNEL_UP | 
      将频道编号加一。 | 
| 向下切换频道 | KEYCODE_CHANNEL_DOWN | 
      将频道编号减一。 | 
Last updated: 2024年2月6日

