Controller Behavior Guidelines (Fire TV)
When you develop your app for the Amazon Fire TV platform, you can support input from different kinds of controllers. These controllers include the Amazon Fire TV Remote and Voice Remote, the Amazon Fire TV Game Controller, or any other controllers that support the Bluetooth gamepad HID profile.
Use the motion and input events from the Remote Control Input and Game Controller Input to implement controller input for your app.
This page provides recommendations for common app functionality across different controllers. None of these guidelines are requirements for publishing an app for Amazon Fire TV, and you may design controller input in the best way that works for your app. We suggest you follow these guidelines to enable a consistent user experience across different controllers, apps, and games.
Core Behavior
Action | Amazon Fire TV Remote Button | Amazon Fire Game Controller Button | Other Game Controller Button | Behavior |
---|---|---|---|---|
Home | Home | Home | Home (if available) | This is a system event and cannot be captured in your app. When pressed, the system returns the user to Home. A second Home press returns the user to Home. Implement onPause() to preserve state in your app or game in case of an unanticipated Home. Implement onResume() to continue when the app resumes. Audio apps may continue playing in the background by requesting the audio focus. |
Back | Back | Back | B | Return to the previous operation or screen (Activity), or cancel the current operation or prompt. Capture this event to provide confirmation dialogs. For example, on the main screen of your app, capture Back to provide a "Do you want to Quit" dialog. Make sure the app doesn't enter into an infinite loop of closing and opening the menu. |
Menu | Menu | Menu | Y | Invoke the standard Android context menu (OptionsMenu). Capture this event to provide your own menu, or for any other purpose. If your menu only has one option, you can use Menu as a toggle for that option. In media apps, use Menu to show or hide the playback chrome. |
Search | Microphone (Voice Remote only) | N/A | N/A | This is a system event and cannot be captured in your app. When pressed, voice search is invoked. Implement onPause() to preserve state in your app or game when voice search launches, and onResume() to continue after it is complete. In audio apps, pause playback or lower the volume when voice search is active. In video apps, mute the audio or pause playback when voice search is active. |
Navigation and Selection
The following table describes the recommended behavior for user interface navigation and selection. For items that show multiple buttons, provide support for both those buttons.
Action | Amazon Fire TV Remote Button | Amazon Fire Game Controller Button | Other Game Controller Button | Behavior |
---|---|---|---|---|
Select/Main Action | D-Pad Center | A | A | Select the item in focus, confirm menu options or prompts, or perform the main game action. |
Cancel/Back | Back | Back B |
B | Cancel the current operation, or return to the previous screen. Intercept this action to provide confirmation dialogs ("Are you sure you want to quit?") |
Up Down Left Right |
D-Pad | D-Pad Left Stick |
D-Pad Left Stick |
Move the input focus in the appropriate direction. On the Amazon Fire Game Controller and other game controllers, the left stick should have the same behavior as the D-Pad. |
Media Playback
The following table describes the recommended behavior for media playback. Note the following:
- If your app does not play media or use the analog sticks or shoulder buttons (L1/R1), do not capture the events for those buttons. Doing so may interfere with the system's ability to control media playing in the background.
- If your app uses a framework such as Unity, you can ignore this recommendation, since the ability to pass key events through to the system is not supported in those frameworks.
Action | Amazon Fire TV Remote Button | Amazon Fire Game Controller Button | Amazon Fire Game Controller (1st Generation) Button | Other Game Controller Button | Behavior |
---|---|---|---|---|---|
Play/Pause | Play/Pause | A Left/Right Stick Press |
Play/Pause | A | Toggle media play or pause. |
Rewind | Rewind Left (D-Pad) Left Shoulder (L1) |
Left Shoulder (L1) | Rewind Left (D-Pad) Left Shoulder (L1) |
Left (D-Pad) Left Shoulder (L1) |
Rewind or skip backwards in media playback contexts. The exact behavior is dependent on the specific media: you can use this button to scrub video, to skip to the previous music track, or move to the previous photo in a slide show. |
Fast Forward | FF Right (D-Pad) Right Shoulder (R1) |
Right Shoulder (R1) | FF Right (D-Pad) Right Shoulder (R1) |
Right (D-Pad) Right Shoulder (R1) |
Fast-forward in media playback contexts. The exact behavior is dependent on the specific media: you can use this button to scrub video, to skip to the next music track, or move to the next photo in a sideshow. |
Volume Control
You can stream audio to the headphone jack on the Amazon Fire TV Game Controller. Volume control for audio playback is available with the left and right trigger buttons (L2/R2). Volume control is a system function and cannot be mapped to other buttons in your app.
Note the following:
- If your app or game does not use these buttons, do not capture those input events. Doing so may interfere with the user's ability to control the volume.
Action | Amazon Fire Game Controller Button |
---|---|
Volume Up | Left Trigger (L2) |
Volume Down | Right Trigger (R2) |
Gameplay
Although gameplay user interfaces are highly individual, the following table describes basic recommendations.
Action | Amazon Fire TV Remote Button | Amazon Fire Game Controller Button | Other Game Controller Button |
---|---|---|---|
Primary Gameplay Action | D-Pad Center | A | A |
Secondary Gameplay Action | no recommendation | B | B |
Last updated: Feb 15, 2023