開発者コンソール

手順8: ディレクティブに応答する


手順8: ディレクティブに応答する

マニフェストにBroadcastReceiverを追加すると、指定したBroadcastReceiverクラス(AlexaDirectiveReceiverなど)に、Alexaディレクティブを含むインテントがFire TVから送信されるようになります。このBroadcastReceiverクラスで、Alexaからアプリに送信されるディレクティブを受け取り、処理します。このクラスの処理のロジックは、開発者自身で開発する必要があります。

サンプルアプリに関する注意事項

サンプルアプリでは既にディレクティブに応答しているため、この手順でコーディングを行う必要はありません。サンプルアプリでのディレクティブの処理は、AlexaDirectiveReceiverクラス(java/com/example/vskfiretv/company/receiverにあります)で確認できます。サンプルアプリの処理ロジックの説明については、このトピックの末尾付近にある [サンプルアプリでのディレクティブの処理] ボタンをクリックして、セクションを展開してください。

VSKディレクティブ

ユーザーがAlexaを介して音声でリクエストを行うと、VSKディレクティブがVSK Agentを介してアプリに送信されます。ディレクティブの詳細については、APIリファレンスを参照してください。

BroadcastReceiverでディレクティブを受け取ったら、アプリでディレクティブのリクエストに対応する必要があります。これは、一般的な設計のMVVM(Model-View-ViewModel)アプリでは通常、非常に単純です。というのも、ほとんどのアプリにマスタービューモデルがあり、リモコンのボタン押下や検索クエリがアプリにルーティングされるためです。通常、アプリでVSKディレクティブを実行するために必要なことは、BroadcastReceiverからビューモデルに関連文字列を渡すことだけです。

たとえば、ユーザーが「コメディ映画を探して」と発話すると、SearchAndDisplayResultsディレクティブを受け取るでしょう。これは、MediaType: MovieおよびGenre: Comediesのディレクティブです。アプリで検索がサポートされている場合は、ユーザーがリモコンで入力フィールドにテキストを入力後、入力された内容を検索するためのメカニズムが既にあります。同じ検索クエリのメカニズムをVSKでも使用して、ディレクティブから解析された「コメディ映画」に対して検索を実行することができます。

ディレクティブへの応答

Alexaが送信するディレクティブは、宣言した機能によって異なります。BroadcastReceiverクラスをカスタマイズして、アプリ内でディレクティブを処理します(手順7: BroadcastReceiverを追加するを参照してください)。具体的な方法は次のとおりです。

  • ディレクティブのpayload(ディレクティブで受け取ったインテント内にあります)を解析して、リクエストされた動作を実行するロジックをアプリに追加します。
  • 正常に処理されたかどうかを示すディレクティブをVSK Agentに返します。ブロードキャストインテント内のPendingIntentにこのステータスを含めます。このステータスはブール型で、true(成功の場合)またはfalse(失敗の場合)のいずれかの値を取ります。レスポンスコードのサンプルは、手順7のBroadcastReceiver Javaクラスの追加で確認できます。

認定に必須のディレクティブ

Alexaはさまざまなリクエストに対応するディレクティブを送信できます。そのすべてに対応する必要があるでしょうか。 アプリに処理できないディレクティブがある場合、そのアプリは認定されないのでしょうか。 各ディレクティブの発話のリストで、サポートする必要のある発話には、その発話の下に「認定に必須」と記載されています。

必須の発話には、タイトル、俳優、ジャンル、シリーズの検索に加え、トランスポートコントロールの発話が含まれます。発話に必須のマークが付いていても、アプリがその機能をサポートしていない場合、そのアプリが認定を受けられないということはなく、その要件は無視することができます。ChangeChannelのようにオプションのディレクティブの場合、そのディレクティブに対応する選択をした場合にのみ、必須のディレクティブが要件となります。

APIリファレンス

上記の各ディレクティブの実装と処理について求められるロジックは、APIリファレンスに記載されています。Alexaでは、受信するディレクティブごとに特定のレスポンスとアクションが想定されています。詳細については、次のリンク先を参照してください。

その他のインターフェース(非推奨)を実装する場合は、以下を参照してください。

発話リファレンス

Fire TVデバイスがサポートするさまざまな発話(ロケールごとの各フレーズを含む)の詳細については、発話リファレンスを参照してください。RemoteVideoPlayerの発話については、以下を参照してください。

その他のインターフェースの発話については、以下を参照してください。

サンプルアプリに関する注意事項

サンプルアプリでのディレクティブの処理方法の詳しい説明については、次のセクションを展開してください。

次のステップ

次の 手順9: アプリに署名してセキュリティプロファイルを構成するに進みます。