Android TV と Google Cast

Android 5.0 のリリースでは、Google Cast をサポートする Android TV が搭載されています。 このドキュメントでは、キャストアプリを開発する際に Android TV でセットアップとテストを行うために必要な作業について説明します。既存のキャスト アプリは追加作業なしで Android TV 上で動作します。Cast アプリを初めて開発する場合は、Google Cast のドキュメントを確認し、Android TV で開発とテストを行う前に、Chromecast デバイスで動作するキャストアプリを開発してください。

開発用のセットアップ

  1. Android TV デバイスをセットアップします。
    1. Android TV デバイスをローカル ネットワークに接続します。
    2. Google アカウントにログインします。
  2. [設定] の [デバイス] 行の [デバイス情報] を選択します。
  3. 「開発者向けオプションが有効になりました」というダイアログが表示されるまで、[Build] まで下にスクロールします。
  4. USB デバッグの場合:
    1. USB ケーブルを取り付けます。ただし、まだ USB ケーブルのマスター側はパソコンに接続しないでください。
    2. [設定] 行で [開発者向けオプション] を選択し、[USB デバッグ]、[オン] の順に選択します。
  5. ホーム画面に戻ります。選択した設定を適用するには、この操作を行う必要があります。設定は、出荷時の設定にリセットしない限り保持されます。
  6. デバイス登録の説明に沿って、Google Cast SDK Developer Console で Android TV デバイスを登録します。

デバッグ

Android TV デバイスで Web Receiver アプリをテストしてデバッグする手順は次のとおりです。

  1. Google Cast SDK Developer Console で Android TV デバイスとアプリを登録します。デバイスとアプリケーションの登録について詳しくは、登録をご覧ください。
  2. センダー アプリを起動し、Android TV デバイスにキャストします。
  3. Android Debug Bridge の使用の説明に沿って、ADB 経由で Android TV デバイスに接続します。
  4. 開発マシンで Chrome ブラウザ ウィンドウを開き、chrome://inspect に移動します。
  5. [inspect] リンクをクリックして、Web Receiver をデバッガに置きます。
  6. Chrome Remote Debugger コンソールで、次のコマンドを入力してデバッグ ロギングを有効にします。

    cast.receiver.logger.setLevelValue(cast.receiver.LoggerLevel.DEBUG);
    

詳細については、デバッグをご覧ください。

Android TV の互換性に関するガイドライン

Cast アプリを Android TV に対応させるために必要な作業はほとんどありません。アプリを Android TV に対応させるうえで回避すべき推奨事項とよくある問題を次に示します。

  • ユーザー エージェント文字列には「Android」と「CrKey」の両方が含まれるため、「Android」ラベルを検知してモバイル専用サイトにリダイレクトされるサイトもあります。ユーザー エージェント文字列の「Android」が常にモバイル ユーザーを示すとは限りません。
  • Android のメディア スタックは、データの取得に透過的な GZIP を使用する場合があります。メディアデータが Accept-Encoding: gzip に応答できることを確認してください。
  • Android TV の HTML5 メディア イベントが Chromecast とは異なるタイミングでトリガーされる場合があるため、Chromecast で隠れていた問題がわかる場合があります。
  • メディアを更新する場合は、<audio>/<video> 要素によって発生するメディア関連イベント(timeupdatepausewaiting など)を使用します。progresssuspendstalled などのネットワーク関連のイベントは、プラットフォームに依存する傾向があるため、使用しないでください。
  • ウェブレシーバー サイトの HTTPS 証明書を設定する際は、必ず中間 CA 証明書を含めてください。Qualsys SSL テストページで確認してください。サイトの信頼できる証明書パスに「追加ダウンロード」というラベルの付いた CA 証明書が含まれている場合、Android ベースのプラットフォームで読み込まれないことがあります。
  • Chromecast では [ウェブ レシーバー] ページが 720p グラフィック プレーンに表示されますが、Android TV を含む他のキャスト プラットフォームでは、最大 1080p で表示されることがあります。Web Receiver ページがさまざまな解像度で適切にスケーリングされるようにします。

Android Debug Bridge を使用する

Android TV プラットフォームは、テレビ、セットトップ ボックス、ゲーム機など、さまざまな種類の家電デバイスに搭載されています。それぞれ異なる設定が可能です。デバイスのユーザー インターフェースから Android TV システム リソースにアクセスできない場合は、Android Debug Bridge(ADB)を使用してデバイスのシリアル番号を取得し、アプリをデバッグできます。詳しくは、Android Debug Bridge をご覧ください。

Wi-Fi 経由で ADB を使用する

Wi-Fi 接続で ADB 経由でデバイスに接続するには:

  1. Android TV デバイスで、開発用の設定の説明に沿って開発者向けオプションを有効にします。
  2. パソコンが Android TV デバイスと同じネットワークに接続されていることを確認します。
  3. ターミナルを開いて、次のように入力します。

    adb connect Android TV device IP address:4321
    
  4. パソコンでターミナルを開き、ADB コマンドを入力します。次のコマンドを使用して、接続が確立され、Android TV デバイスがネットワークを介して通信していることを確認できます。

    adb logcat

USB ケーブルで ADB を使用する

USB ケーブルで ADB 経由でデバイスに接続するには:

  1. 開発用設定の説明に沿って、開発用に Android TV デバイスをセットアップします。
  2. USB ケーブルのマスター側をパソコンに接続します。
  3. [USB デバッグを許可しますか?] ダイアログで、[このパソコンからの USB デバッグを常に許可] を選択し、[OK] を選択します。
  4. パソコンでターミナルを開き、ADB コマンドを入力します。次のコマンドを使用して、接続が確立され、Android TV デバイスがネットワークを介して通信していることを確認できます。

    adb logcat

TCP/IP での ADB の使用

ADB は USB ケーブルがなくても TCP/IP で動作しますが、最初に Android TV デバイスの IP アドレスを取得する必要があります。デベロッパーが提供するデバイスは、ADB ポート接続を自動的にリッスンし、ポートを初期化せずに接続できます。標準小売 Android TV デバイスは、ADB 接続を自動的にリッスンしません。これらのデバイスでは、まず USB ケーブルで ADB に接続し、ポートを初期化する必要があります。

  1. 開発用設定の説明に沿って、開発用に Android TV デバイスをセットアップします。
  2. Android TV の [Device] 行で、[Network] > [Wi-Fi] を選択し、接続されているネットワークを選択します。
  3. [ステータス情報] を選択し、IP アドレスをメモします。
  4. 標準の市販 Android TV デバイスの場合、次の手順を行います。

    1. USB ケーブルで ADB を使用するの手順に沿って操作します。
    2. パソコンが Android TV デバイスと同じネットワークに接続されていることを確認します。
    3. コンピュータのターミナルで次のコマンドを入力して、TCP/IP のポートを初期化します。

      adb tcpip 5555
    4. USB ケーブルを取り外し、ターミナルに次のように入力します。

      adb connect Android TV device IP address:5555
      
  5. お使いのデバイスがデベロッパー発行の Android TV である場合は、次の手順を行います。

    1. パソコンが Android TV デバイスと同じネットワークに接続されていることを確認します。
    2. ターミナルを開いて、次のように入力します。

      adb connect Android TV device IP address:4321
      
  6. Android TV の [USB デバッグを許可しますか?] ダイアログで [このパソコンからの USB デバッグを常に許可する] を選択し、[OK] を選択します。次のコマンドを使用して、接続が確立され、Android TV デバイスがネットワークを介して通信していることを確認できます。

    adb logcat