Amazon Fire TVリモコン入力

リモコン入力 (Amazon Fire TV)

すべてのリモコンが、同じボタン、同じAndroidイベント、同じ動作のガイドラインに対応しています。ただし、[音声認識] ([マイク]) ボタンは一部のリモコンでしか利用できません。

サポートされるすべてのコントローラにおけるボタンの動作に関する推奨されるガイドラインについては、「コントローラ動作のガイドライン」を参照してください。Amazon Fire ゲームコントローラからの入力を処理する方法の詳細については、「Amazon Fire ゲームコントローラ入力」を参照してください。

コントローラーの概要

Amazon Fire TV プラットフォームは、Amazon Fire TV Remote、Fire TV Voice Remote、Fire ゲームコントローラ、および Bluetooth HID ゲームパッドプロファイルをサポートするその他のゲームコントローラからのユーザー入力をサポートします。コントローラーはすべて、端末に接続して使用する必要があります。

Amazon Fire TVコントローラーは、すべてAndroid入力機器となっています。これらの端末から送られた入力の処理には、他のAndroid入力機器の場合と同じ技術とAPIを使用します。

特にナビゲーションや選択など、コントローラーからの単純な入力は、キーボードやボタンパッドからの入力を処理する場合と同じようにキーイベントを使用して処理することができます。

ボタン

ほとんどの Amazon Fire TV リモコンには次のボタンがあります。一部のFire TVのリモコンには [マイク] ボタン ([音声認識]) ボタンが付属していません。

リモコン
リモコン

Fire TV Edition (日本未対応) のリモコンには、音量アップ/音量ダウン、電源、Netflix、Amazon Music、Amazon Primeのボタンが追加されています。ただし、これらのボタンをサードパーティ製アプリのイベントに対応付けることができません。上図のFire TVリモコンで示されているボタンは、外観が少し異なっていてもFire TV Edition (日本未対応) のリモコンで利用できるボタンと事実上同じです。

入力情報を取得する

Android入力端末と同じように、どのAmazon Fire TVリモコンもボタンを押されるとKeyEventイベントを生成します。コントローラーボタン入力は、標準のAndroidイベントリスナーインターフェイスとコールバック (onClick()onFocusChange()など) を使用して処理できます。Amazon Fire TVリモコンと音声認識リモコンのいずれも、(Android MotionEventクラスから) モーションイベントを発生させません。

Viewで特定のボタンが押されたことを示すイベントをキャプチャするには、onKeyDown()などの入力イベントハンドラーをオーバーライドします。特定のキーをキャプチャするには、KeyEventクラスの入力定数をテストします。

たとえば、[Left]、[Right]、および [Center] の D-Pad ボタンをキャプチャするには、次のコードを使用します (ゲームコントローラの [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クラスから) モーションイベントを発生させません。

アプリ内で入力イベントを特にキャプチャしていない場合は、デフォルトの動作が発生します。

ボタン KeyEvent デフォルトの動作
ホーム なし [Home] 画面に戻ります。これはシステムイベントで、インターセプトできません。
Back (戻る) KEYCODE_BACK 前の操作または画面 (アクティビティ) に戻ります。
Menu (メニュー) KEYCODE_MENU Android コンテキストメニュー (OptionsMenu) が起動されます。
Microphone (検索) (Voice Remote のみ) なし システムの音声検索が起動されます。これはシステムイベントで、インターセプトできません。
Select (D-Pad の [Center]) KEYCODE_DPAD_CENTER 現在フォーカスが置かれているユーザーインターフェイスアイテムが選択されます。
Up (D-Pad) KEYCODE_DPAD_UP ユーザーインターフェイス内でフォーカスが上方向に移動します。
Down (D-Pad) KEYCODE_DPAD_DOWN ユーザーインターフェイス内でフォーカスが下方向に移動します。
Left (D-Pad) KEYCODE_DPAD_LEFT ユーザーインターフェイス内でフォーカスが左方向に移動します。
Right (D-Pad) KEYCODE_DPAD_RIGHT ユーザーインターフェイス内でフォーカスが右方向に移動します。
Play/Pause (再生/一時停止) KEYCODE_MEDIA_PLAY_PAUSE メディアが再生または一時停止されます。再生と一時停止は、相互に切り替わります。
Rewind (早戻し) KEYCODE_MEDIA_REWIND 再生中のメディアコンテキストが早戻しされます。
Fast Forward (早送り) KEYCODE_MEDIA_FAST_FORWARD 再生中のメディアコンテキストが早送りされます。