リモコン入力


リモコン入力

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

サポートされているすべてのコントローラーのボタン動作に関する推奨ガイドラインについては、コントローラー動作のガイドラインを参照してください。Amazon Fire TVゲームコントローラー(日本では現在お取り扱いできません)からの入力を処理する方法について詳しくは、ゲームコントローラー入力を参照してください。

コントローラーの概要

Amazon Fire TVプラットフォームは、Amazon Fire TVリモコン、Fire TV音声認識リモコン、Amazon Fire TVゲームコントローラー(日本では現在お取り扱いできません)、およびBluetooth HIDゲームパッドプロファイルをサポートするその他ゲームコントローラーからのユーザー入力に対応しています。コントローラーはすべて、使用するデバイスに接続する必要があります。

すべてのAmazon Fire TVコントローラーは、Android入力デバイスです。これらのデバイスから送られた入力の処理には、ほかのAndroid入力機器の場合と同じ技術とAPIを使用します。

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

ボタン

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

リモコン
リモコン

Fire TV Edition(日本未対応)のリモコンには、音量ボタンや電源ボタンのほか、Netflix、Amazonプライムなどといったアプリのボタンが追加されています。ただし、これらのボタンはサードパーティ製アプリのイベントにマッピングできません。上図の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(検索)(音声認識リモコンのみ) なし システムの音声検索が起動されます。これはシステムイベントで、インターセプトできません。
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 再生中のメディアコンテキストが早送りされます。