開発者コンソール

手順2: Fire TV対応サンプルアプリをセットアップする


手順2: Fire TV対応サンプルアプリをセットアップする

VSKの統合を目指している多くの開発者は、安定して機能するFire TV対応アプリを既に作成済みです。ただし、多くの場合、開発者は作成したアプリを直接試して変更を加える前に、まずVSKのワークフローを把握し、受信するAlexaディレクティブを確認したいと考えています。そこで、こうした開発者向けに、ビデオスキルの実際の動作を確認できるよう、構成とセットアップの一部が完了した基本的なFire TV対応アプリを用意しています。このサンプルアプリを使用してVSKの詳細を確認し、VSKのしくみを把握した後で、実際のアプリで同じプロセスを再確認できます。

もちろん、必要に応じて、サンプルアプリを編集するのではなく、実際のFire TV対応アプリを直接更新することもできます。このドキュメントでは、サンプルアプリを更新する場合と独自のアプリを使用する場合の両方のシナリオを考慮して説明を進めます。

VSKを統合したFire TV対応サンプルアプリについて

Fire TV対応サンプルアプリは、実際に機能するビデオスキルを組み込んだ基本的なAndroidアプリであり、ストリーミングビデオを再生します。この動作を実現するために、アプリにはAlexa Client LibraryとAmazon Device Messaging(ADM)が組み込まれています。構成後は、タイトルを指定してAlexaにビデオをリクエストすると、アプリでそのビデオが再生されます。ただし、独自のパッケージ名とビデオスキルを使用してサンプルアプリを構成する必要があります。

サンプルアプリでは、アプリにプッシュされたディレクティブを確認できます。このプレビューにより、ビデオスキルがアプリとどのようにやり取りするかをより詳しく理解できます。サンプルアプリでは、ディレクティブを処理してアプリで特定のアクションを実行するためのロジックは示されていません。ロジックの大半は、独自のコードを基に自分で構築する必要があります。

また、このサンプルアプリは、アプリを開発するための土台やテンプレートとしてではなく、ドキュメントを補足するガイドとして使用するためのものです。VSKを統合するほぼすべてのビデオパートナーは、既にアプリを独自開発しています。サンプルアプリでは、あくまでも一部の統合手順についてのコンテキストのみを提供します。

サンプルアプリは、後の手順8: スキルをテストしてCloudWatchでログを確認するまでは実行しません。サンプルアプリを実行すると、次のように表示されます。

一般に利用可能なビデオが統合されたサンプルアプリ
一般に利用可能なビデオが統合されたサンプルアプリ

前提条件

サンプルアプリを利用するには、Java Developer Kit(JDK)とAndroid Studioが必要です。Android開発の経験が豊富な方は、これは既にセットアップ済みである可能性があります。その場合は、Fire TV対応サンプルアプリをダウンロードするに直接進むことができます。

Java Development Kit

OracleのJava Development Kit(JDK)が必要です。JDKは、コンピューターでJavaアプリをコンパイルするためだけでなく、ほかのタスク(keytoolの使用など)を実行するためにも使用されます。まず、JDKが既にインストールされているかどうかを確認します。

  1. ターミナルまたはコマンドプロンプトを開きます。
  2. java -versionと入力します。JDKがインストールされている場合、次のようなレスポンスが返されます。

    openjdk version "12.0.2" 2019-07-16
    OpenJDK Runtime Environment (build 12.0.2+10)
    OpenJDK 64-Bit Server VM (build 12.0.2+10, mixed mode, sharing
    

    Windowsでは、C:\Program Files\Java\jdk1.8.0\などのディレクトリを手動で調べて、JDKがインストールされているかどうかを確認することもできます。

  3. JDKがインストールされていない場合は、ご使用のコンピューターに合った適切なバージョンのJDKインストーラーをJava SE Development Kit Downloads(英語のみ)からダウンロードして実行してください。詳細については、以下を参照してください。

Android Studio

サンプルアプリを利用するには、Androidプロジェクトの公式IDEであるAndroid Studioをインストールする必要があります。ご使用のコンピューターへのAndroid Studio開発環境のセットアップについては、Android Studioの概要Android Studioのインストールを参照してください。

サンプルアプリでは、Android Studioと共に特定のSDKツールとAPIをインストールする必要があります。事前にスタンドアロンのSDK Managerからこれらのツールを選択する必要はありません。サンプルアプリプロジェクトを開くと、Android Studioに不足しているビルドツールやAPIをインストールするよう促されます。

VSKを統合したFire TV対応サンプルアプリのダウンロード

サンプルアプリをダウンロードするには、次の手順を実行します。

  1. https://github.com/amzn/sample-fire-tv-app-video-skillに移動します。
  2. [Clone or download] をクリックします。次に、[Download ZIP] をクリックします。
  3. zipファイルをアクセスしやすい場所に保存し、解凍します。
  4. Android StudioではVCSマッピングの識別が試行されるため、不要であれば、.gitフォルダを削除します。

このリポジトリには次の2つのフォルダがあります。

フォルダ 内容
VSKFireTV-sample-app Alexa Client LibraryとADM JARファイルを含み、Video Skills Kitが構成されたAndroidサンプルプロジェクト。
Lambda Lambdaデプロイパッケージを作成するためのNodeプロジェクト(index.jspackage.json)。詳細については、手順6: Lambdaパッケージを作成・デプロイするを参照してください。このフォルダには、ビデオコンテンツのデータソースの例であるvideo_catalog.jsonも含まれています。

Android StudioでFire TV対応サンプルアプリを開く方法

Android Studioでプロジェクトを開き、アプリをビルドします。

  1. Android Studioを起動します。
  2. ようこそダイアログで、[Open an existing Android Studio project] をクリックします。
  3. 「app」ディレクトリの親ディレクトリ(sample-fire-tv-app-video-skillなど)を選択し、[Open] をクリックします。

    プロジェクトを初めて開いたときに、Android StudioでAndroid SDKの場所が正しくないことが検出され、コンピューターにマッピングされたパスが提示されることがあります。この場合は、提示された内容に同意します。さらに、「Invalid VCS root mapping」と表示されることもあります。 このプロンプトは、プロジェクトの.gitフォルダ(非表示)を削除すると消えます。

    Gradleによってプロジェクトのビルドが開始されます。Gradleの最新リリースによっては、Gradleのアップデートを求められる場合があります。求められた場合は、[Don't remind me again for this project] をクリックします。

    初めてプロジェクトを開いた際は、Gradleがプロジェクトをビルドするまでに数分程度かかる場合があります。この時間は、Gradleがダウンロードする必要があるアセットと、ネットワークやプロセッサの速度によって変わります。それ以降の所要時間は短くなります。必要なライブラリやファイルがAndroid Studioになく、インストールするよう求められた場合は、必要なツールをインストールします。

    Gradleによるプロジェクトのビルドが終了すると、[Build] タブに正常終了を示す緑色のチェックマークが表示されます。

    正常終了したビルド
    正常終了したビルド

    ビルドエラーが発生した場合は、[Build] > [Rebuild Project] の順にクリックして、プロジェクトを再ビルドします。

  4. 左側の [Project] タブをクリックして、プロジェクトファイルを表示します。Android Studioの [Android] ビューに、次のディレクトリが表示されます。

    サンプルアプリプロジェクトの [Android] ビュー
    サンプルアプリプロジェクトの [Android] ビュー

    ディレクトリの1つがAlexaClientLibであることに注意してください。ここにAlexa Client Libraryが含まれています。[Project] ビューのappディレクトリには、Amazon Device Messaging JARが格納されたlibsフォルダがあります。

Fire TV対応サンプルアプリのパッケージ名の置き換え

サンプルアプリでは、パッケージ名を置き換える必要があります。パッケージ名はAmazonアプリストアで一意である必要があります。後でAmazon開発者ポータルでセキュリティプロファイルとAPIキーを構成する際に、一意のパッケージ名が必要となります。以下のコードサンプルでは、カスタマイズが必要なパッケージ名を明るい赤色で示しています。パッケージ名をカスタマイズするには、次の手順を実行します。

  1. 前のセクションで説明したように、[Android] ビューが表示されていることを確認します。
  2. [Options] メニュー(歯車アイコン)をクリックし、[Compact Middle Packages] のチェックマークを外します。

    [Compact middle packages] のチェックマークを外す

    これにより、com > example > vskfiretvが展開され、com.example.vskfiretvパッケージが階層に表示されます。

  3. example を右クリックし、[Refactor] > [Rename] をクリックします。

    パッケージ名の変更
  4. 一意の名前(自分の名前など)を入力し、[Refactor] をクリックします。

    リファクタリング
  5. [Do Refactor] をクリックします。

    リファクタリングの実行
  6. app > manifestsの順にクリックし、AndroidManifest.xmlファイルを開きます。パッケージ名com.example.vskfiretvの各インスタンスを新しいパッケージ名に更新します。AndroidManifest.xmlには、更新が必要なインスタンスがいくつかあります。これらのインスタンスのほとんどは、前の手順でリファクタリングしたときに更新されていますが、以下のように古いパッケージ名が残っている場合は、更新します。

    5行目:

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:amazon="http://schemas.amazon.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.example.vskfiretv">
    

    9行目と12行目:

    <permission
        android:name="com.example.vskfiretv.permission.RECEIVE_ADM_MESSAGE"
        android:protectionLevel="signature" />
    <uses-permission
        android:name="com.example.vskfiretv.permission.RECEIVE_ADM_MESSAGE" />
      

    66行目:

     <category android:name="com.example.vskfiretv" />
     
  7. サイドバーの [Gradle Scripts] を展開し、build.gradle (Module: app)ファイルを開きます。applicationIdプロパティを一意のパッケージ名で更新します。

    21行目:

     applicationId "com.example.vskfiretv"
    
  8. app > res > values > strings.xmlの順にクリックし、アプリ名を一意の名前に更新します。

    2行目:

    string name="app_name">VSKFireTV</string>
    
  9. [Gradle Scripts] を展開し、build.gradle (Module: app)を開きます。applicationId値を一意のパッケージ名で更新します。

    15行目:

    defaultConfig {
    applicationId "com.example.vskfiretv"
    minSdkVersion 23
    targetSdkVersion 29
    versionCode 1
    versionName "1.0"
    

    build.gradleファイルを更新した際、Android Studioでプロジェクトの再同期を求められたら、[Sync now] をクリックします。

  10. [Build] > [Rebuild Project] の順にクリックします。

    ビルドが完了すると、「Gradle build finished」というメッセージが表示されます。

  11. ビデオIDを保存したファイルに、パッケージ名をメモしておきます。このパッケージ名は、後でセキュリティプロファイルを作成するときに必要になります。

ビデオスキルIDのカスタマイズ

サンプルアプリでビデオスキルIDを構成する必要があります。

  1. app > java > com > example > vskfiretv > MainActivityの順に移動します(パスはパッケージ名のカスタマイズ方法によって異なります)。
  2. final String alexaSkillIdを探し、この値を手順1のビデオスキルの作成で作成したビデオスキルIDに置き換えます。

    102行目:

    final String alexaSkillId = "amzn1.ask.skill.12345678-abcd-1234-efgh-123456789";
    

    以下のコード(118行目)に注意してください。

    // initialize()を呼び出してAlexa Client Libraryを初期化します。
    clientManager.initialize(getApplicationContext(),
       alexaSkillId,
       AlexaClientManager.SKILL_STAGE_DEVELOPMENT,
       capabilities);
    

    このコードは、Alexa Client Libraryに、Fire TV対応アプリとビデオスキルをできるだけ早く自動ペアリングするように促します。後の手順12: アプリを公開するで、SKILL_STAGE_DEVELOPMENTSKILL_STAGE_LIVEに変更します。

Fire TV対応サンプルアプリの手順について

ドキュメントでは、サンプルアプリの操作方法に沿って特定の情報がコールアウト表示されます。多くの場合、サンプルアプリに関連する情報は、次のようなコールアウトで示されます。

Fire TV対応サンプルアプリに関する注意点

サンプルアプリの操作手順は、多くの場合、このような形式で表示されます。このコールアウトが表示されない限り、ドキュメントの通常の手順に従ってください。このコールアウトでは、現在の手順で説明しているコードが既にサンプルアプリに実装されているため、その手順を実施する必要がないことなどが示されます。また、サンプルアプリでの作業に関する特別な指示や情報が提供される場合もあります。

次のステップ

サンプルアプリのセットアップが完了したので、手順3: Alexa Client Libraryを統合するに進みます。

問題が発生して続行できない場合は、トラブルシューティングを参照してください。