Home > Devices > Amazon Fire TV

Remote Input

Introduction

Edit on GitHub

All buttons, Android events, and behavior guidelines are the same for all remotes — with the exception of the voice search (microphone) button, which is only available on some remotes.

For suggested guidelines on button behavior for all supported controllers, see Controller Behavior Guidelines. For information on handling input from the Amazon Fire Game Controller, see Amazon Fire TV Game Controller Input.

Buttons

Most Amazon Fire TV remote controls have these buttons. Some Fire TV remotes do not include the microphone or voice search buttons.

Remote control
Remote control

Capturing Input

All Amazon Fire TV remote controls generate KeyEvent events for button presses, as any Android input device does. You can handle controller button input with standard Android event listener interfaces and callbacks (onClick(), onFocusChange(), and so on). Neither the Amazon Fire TV Remote nor the Voice Remote raises motion events (from the Android MotionEvent class).

To capture specific button press events in your View, override input event handlers such as onKeyDown(). Test for the input constants from the KeyEvent class to capture specific keys.

For example, to capture the LEFT, RIGHT, and CENTER D-Pad button (as well as the A button on a game controller), use this code:

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

switch (keyCode){
case KeyEvent.KEYCODE_DPAD_CENTER:
case KeyEvent.KEYCODE_BUTTON_A:
        // ... handle selections
        handled = true;
        break;
case KeyEvent.KEYCODE_DPAD_LEFT:
        // ... handle left action
        handled = true;
        break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
        // ... handle right action
        handled = true;
        break;
}
return handled || super.onKeyDown(keyCode, event);
}

As with all input events, your listener method should return true to capture the event and handle it, or pass that event on to super.onKeyDown() so that other controls can manage it.

Input Event Reference

The following table describes the buttons, the Android KeyEvent constants, and the default behavior of those buttons. None of the Amazon Fire TV remotes raises motion events (from the Android MotionEvent class).

If you do not capture a specific input event the default behavior occurs.

Button KeyEvent Default Behavior
Home none Return the user to the Home screen. This is a system event and cannot be intercepted.
Back KEYCODE_BACK Return the user to the previous operation or screen (Activity).
Menu KEYCODE_MENU Invoke the Android context menu (OptionsMenu).
Microphone (Search) (Voice Remote only) none Invoke the system voice search. This is a system event and cannot be intercepted.
Select (D-Pad Center) KEYCODE_DPAD_CENTER Select the user interface item with the current focus.
Up (D-Pad) KEYCODE_DPAD_UP Move the focus upward in the user interface.
Down (D-Pad) KEYCODE_DPAD_DOWN Move the focus downward in the user interface.
Left (D-Pad) KEYCODE_DPAD_LEFT Move the focus left in the user interface.
Right (D-Pad) KEYCODE_DPAD_RIGHT Move the focus right in the user interface.
Play/Pause KEYCODE_MEDIA_PLAY_PAUSE Control media playback. Play/Pause is a toggle.
Rewind KEYCODE_MEDIA_REWIND Rewind or skip backwards in media playback contexts.
Fast Forward KEYCODE_MEDIA_FAST_FORWARD Fast Forward or skip ahead in media playback contexts.