Android 5.0 のリリースに伴い、Google Cast をサポートする Android TV がリリースされます。 このドキュメントでは、キャスト アプリを開発する際に Android TV をセットアップしてテストするために必要な作業について説明します。既存のキャスト アプリを Android TV で実行すれば、追加作業は不要です。初めて Cast アプリを開発する場合は、Google Cast のドキュメントを確認し、Android TV での開発とテストを行う前に、まず Chromecast デバイス上で動作するように Cast アプリを開発してください。
開発の準備
- Android TV デバイスをセットアップします。
- Android TV デバイスをローカル ネットワークに接続します。
- Google アカウントにログインします。
- [設定] の [デバイス] 行で、[デバイス情報] を選択します。
- 下にスクロールして「You are now a developer」というメッセージが表示されるまで、ビルドを数回クリックします。
- USB デバッグの場合:
- USB ケーブルを取り付けます。ただし、USB ケーブルのマスター端はまだパソコンに接続しないでください。
- [設定] 行で、[開発者向けオプション]、[USB デバッグ]、[オン] の順に選択します。
- ホーム画面に戻ります。これは、選択した設定を適用するには、行う必要があります。出荷時の設定にリセットしない限り、設定は保持されます。
- デバイス登録の説明に沿って、Google Cast SDK Developer Console で Android TV デバイスを登録します。
デバッグ
Android TV デバイスで Web Receiver アプリをテストしてデバッグする手順は次のとおりです。
- Google Cast SDK Developer Console で Android TV デバイスとアプリを登録します。 デバイスとアプリの登録の詳細については、登録をご覧ください。
- 送信側アプリを起動して、Android TV デバイスにキャストします。
- Android Debug Bridge の使用の説明に沿って、ADB を介して Android TV デバイスに接続します。
- 開発マシンで、Chrome ブラウザ ウィンドウを開き、chrome://inspect に移動します。
- [inspect] リンクをクリックして、Web Receiver をデバッガに移動します。
Chrome リモート デバッガ コンソールで、次のコマンドを入力してデバッグ ロギングを有効にします。
cast.receiver.logger.setLevelValue(cast.receiver.LoggerLevel.DEBUG);
詳細については、デバッグをご覧ください。
Android TV の互換性に関するガイドライン
キャスト アプリを Android TV に対応させるための追加の作業はほとんどありません。アプリが Android TV に対応できるようにするために、回避すべき推奨事項と一般的な注意点について説明します。
- User-Agent 文字列には「Android」と「CrKey」の両方が含まれます。「Android」ラベルを検出するため、サイトによってはモバイル専用サイトにリダイレクトされる場合があります。ユーザー エージェント文字列の「Android」が常にモバイル ユーザーを示しているとは限りません。
- Android のメディア スタックは、データの取得に透過的な GZIP を使用することがあります。メディアデータが
Accept-Encoding: gzip
に応答できることを確認します。 - Android TV の HTML5 メディア イベントは、Chromecast とは異なるタイミングでトリガーされる場合があります。Chromecast に隠された問題が表示されることがあります。
- メディアを更新するときは、
<audio>/<video>
要素(timeupdate
、pause
、waiting
など)によって配信されるメディア関連のイベントを使用します。ネットワーク関連のイベント(progress
、suspend
、stalled
など)はプラットフォームに依存する傾向があるため、使用しないでください。 - Web Receiver サイトの 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 経由でデバイスに接続するには:
- Android TV デバイスで、開発用セットアップの説明に従って開発者向けオプションを有効にします。
- パソコンが Android TV デバイスと同じネットワークに接続されていることを確認します。
ターミナルを開いて、次のように入力します。
adb connect Android TV device IP address:4321
パソコンでターミナルを開いて、ADB コマンドを入力します。次のコマンドを使用して、接続が確立され、Android TV デバイスがネットワーク間で通信していることを確認します。
adb logcat
USB ケーブルで ADB を使用する
USB ケーブルで ADB 経由でデバイスに接続するには:
- 開発用にセットアップするの説明に沿って、開発用の Android TV デバイスをセットアップします。
- USB ケーブルのマスター端をパソコンに接続します。
- [USB デバッグを許可しますか?] ダイアログで [このパソコンからの USB デバッグを常に許可する] を選択して [OK] を選択します。
パソコンでターミナルを開いて、ADB コマンドを入力します。次のコマンドを使用して、接続が確立され、Android TV デバイスがネットワーク間で通信していることを確認します。
adb logcat
ADB 経由の TCP/IP の使用
ADB は、TCP/IP を介して USB ケーブルなしで動作しますが、まず Android TV デバイスの IP アドレスを取得する必要があります。デベロッパー発行のデバイスは、ADB ポート接続を自動的にリッスンするため、ポートを初期化せずに接続できます。標準的な小売の Android TV デバイスは、ADB 接続を自動的にリッスンしません。これらのデバイスの場合、まず USB ケーブルで ADB に接続し、ポートを初期化する必要があります。
- 開発用にセットアップするの説明に沿って、開発用の Android TV デバイスをセットアップします。
- Android TV の [デバイス] 行で、[ネットワーク] > [Wi-Fi] を選択し、接続済みのネットワークを選択します。
- [ステータス情報] を選択し、[IP アドレス] をメモします。
お使いのデバイスが標準の小売用 Android TV デバイスである場合は、次の手順を行います。
- USB ケーブルで ADB を使用するの手順を行います。
- パソコンが Android TV デバイスと同じネットワークに接続されていることを確認します。
パソコンのターミナルで、次のコマンドを入力して TCP/IP のポートを初期化します。
adb tcpip 5555
USB ケーブルを取り外し、ターミナルに次のように入力します。
adb connect Android TV device IP address:5555
開発元の Android TV の場合は、次の手順を実施します。
- パソコンが Android TV デバイスと同じネットワークに接続されていることを確認します。
ターミナルを開いて、次のように入力します。
adb connect Android TV device IP address:4321
Android TV の [USB デバッグを許可しますか?] ダイアログで [このパソコンからの USB デバッグを常に許可する] を選択して [OK] を選択します。次のコマンドを使用して、接続が確立され、Android TV デバイスがネットワーク間で通信していることを確認します。
adb logcat