開発者コンソール

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


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

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

もちろん、サンプルアプリを使用せずに、ここで既存のFire TV対応アプリを直接修正しても構いません。このドキュメントでは、サンプルアプリを使用する場合と独自のアプリを使用する場合の両方のシナリオを考慮して説明を進めます。

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

このサンプルアプリは、Fire TV対応アプリを構築するためのJavaベースのAndroidツールキットであるFire App Builderのフォークです。このフォークには、実際に動作するビデオスキルが組み込まれています。この動作を実現するために、アプリにはAmazon Device Messaging(ADM)とAlexa Client Libraryが組み込まれています。構成後は、Alexaにタイトルでビデオをリクエストすると、アプリでそのビデオが再生されます。ただし、独自のビデオスキルを使用してサンプルアプリを構成する必要はあります。

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

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

前提条件

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

Java Development Kit

Oracleから提供されているバージョン1.8以降の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をインストールするよう促されます。

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フォルダを削除します。

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

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

  1. Android Studioを起動します。
  2. ようこそダイアログで、[Open an existing Android Studio project] をクリックします。
  3. サンプルアプリをダウンロードしたディレクトリを参照します。[Application] フォルダを選択し、[Open] をクリックします。

    Gradleによってプロジェクトのビルドが開始されます。

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

    さらに、[Invalid VCS root mapping] と表示されることもあります。 この表示は、プロジェクトの.gitフォルダ(非表示)を削除すると消えます。

    初めてプロジェクトを開いた際は、Gradleがプロジェクトをビルドするまでに20~40分程度かかる場合があります。この時間は、Gradleがダウンロードする必要があるアセットと、ネットワークやプロセッサの速度によって変わります。それ以降の処理にかかる時間は約1分です。Android Studioに必要なライブラリやファイルが見つからない場合は、次のようなメッセージが表示されることがあります。

    このようなメッセージが表示された場合は、リンクをクリックして、不足しているツールをインストールします。プロジェクトを開いたときにAndroid Studioでメッセージが表示されなくなるまで、指示に従って不足しているツールをインストールしてください。

    ビルドエラーが発生した場合は、プロジェクトをクリーンアップして再ビルドしてください([Build] > [Clean Project or Build] > [Rebuild Project])。

  4. Android Studioのフッターにある [Build] ボタンをクリックしてGradleコンソールを開き、Gradleビルドの進行状況を監視できます。これにより、ビルドが成功したか、Android Studioでほかのダウンロードが必要かどうかを知ることができます。Gradleがビルドを終了するまで待ちます。

    Gradleでプロジェクトのビルドが完了したら、Android StudioのAndroidビューに次のディレクトリが表示されます。

    Alexa Client Libraryが含まれたAndroid Studioのディレクトリ

    ディレクトリの1つがAlexaClientLibであることに注意してください。ここにAlexa Client Libraryが含まれています(デフォルトのFire App Builderプロジェクトには、このディレクトリは含まれていません)。

    また、Androidがプロジェクトを開くと、デフォルトでAndroidビュー(前のスクリーンショットの赤丸で囲まれた部分)が表示され、「Application」フォルダは「app」になります。

ビデオスキルIDをカスタマイズする

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

  1. Shiftキーを2回押して、TenFootApp.javaを検索します。
  2. 使用するビデオスキルIDでALEXA_SKILL_IDの値をカスタマイズします。以下に例を示します。

    private static final String ALEXA_SKILL_ID = "amzn1.ask.skill.544641fd-b4b3-40ab-a9f6-c9757bda68b6";
    
  3. 次の行に注意してください。

    clientManager.setAlexaEnabled(true);
    

    このコードは、Alexa Client Libraryに、Fire TV対応アプリとビデオスキルをできるだけ早く自動ペアリングするように促します(以前のバージョンのように、この行がコメントアウトされている場合は、コメントを解除してください)。

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

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

  1. 前のセクションで説明したように、Androidビューが表示されていることを確認します。
  2. [app] > [manifests] の順にクリックし、AndroidManifest.xmlファイルを開きます。package名のcom.fireappbuilder.android.calypsovskを、com.fireappbuilder.android.mycompanyのような一意のパッケージ名に更新します。

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.fireappbuilder.android.calypsovsk">
    

    サンプルアプリでは、com.fireappbuilder.android.calypsovskパッケージにクラスはありません。

  3. Gradle Scriptsを展開し、build.gradle (Module: app)ファイルを開きます。パッケージ名に一致するようにapplicationIdプロパティを更新します。以下に例を示します。

    defaultConfig {
        applicationId "com.fireappbuilder.android.calypsovsk"
        minSdkVersion 21
        targetSdkVersion 23
        versionCode 10
        versionName "1.0.7"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }
    
  4. [TVUIComponent] > [manifests] の順にクリックし、AndroidManifest.xmlファイルを開きます。パッケージ名のすべてのインスタンスを一意のパッケージ名に変更します。変更するインスタンスは複数あります。

    <permission
        android:name="com.fireappbuilder.android.calypsovsk.RECEIVE_ADM_MESSAGE"
        android:protectionLevel="signature" />
    
    <uses-permission android:name="com.fireappbuilder.android.calypsovsk.RECEIVE_ADM_MESSAGE" />
    ...
    <intent-filter>
    <action android:name="com.amazon.device.messaging.intent.REGISTRATION" />
    <action android:name="com.amazon.device.messaging.intent.RECEIVE" />
    <category android:name="com.fireappbuilder.android.calypsovsk" />
    
  5. [ContentBrowser] > [res] > [values] の順にクリックし、custom.xmlを開きます。次の行でパッケージ名を変更します。

    <!--パッケージ名。AndroidManifestにあるものと同じである必要があります--&>
    <string name="launcher_integration_intent_package_value">com.fireappbuilder.android.calypsovsk</string>
    
  6. Gradleファイルを変更すると、Gradleをプロジェクトと同期するように求められます。右上隅にある [Sync Now] リンクをクリックします。
  7. [Build] > [Rebuild Project] の順にクリックして、以前のアプリのアーティファクトがあればそれをクリーンアップし、その後プロジェクトを再ビルドします。

    このサンプルアプリでは、「Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'」といった警告は気にしなくても構いません。 アプリは引き続きビルドされます。これらのアップデートは、このサンプルアプリの将来のバージョンで行われる予定です。

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

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

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

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

次のステップ

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

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