ゲストモードのウェブ受信デバイス(Chromecast など)では、送信側デバイスがウェブ受信機と同じ Wi-Fi ネットワークに接続されていなくても、送信側デバイス(スマートフォンまたはタブレット)が付近にキャストされます。
ゲストモードで送信デバイスがウェブ レシーバーの近くにあると、送信側のアプリのそのウェブ レシーバーのキャスト メニューに「付近のデバイス」というルートが表示されます。送信者は認証するために、超音波オーディオを使用してウェブレシーバーからトークンをリッスンします。この自動認証が失敗した場合、ゲストモードの PIN を手動で入力するように求められます。この PIN は Chromecast の背景または Google Home アプリのデバイス設定で確認できます。
iOS ゲストモード
iOS 13 での権限の変更
iOS 13 では、Google Cast SDK を使用しているアプリに影響する厳密な権限要件が導入されました。
次のように、アプリの Info.plist
ファイルに Privacy - Bluetooth Always Usage Description
権限を追加する必要があります。${PRODUCT_NAME}
はアプリの名前に置き換えます。アプリがキャスト以外の理由で Bluetooth® を使用している場合は、説明を変更する必要があります。
<key>NSBluetoothAlwaysUsageDescription</key> <string>${PRODUCT_NAME} uses Bluetooth to discover nearby Cast devices.</string>
Google Cast SDK v4.4.3 以降では、Bluetooth® の権限を必要としないゲストモードに対応していない SDK も用意されています。これは、デベロッパー サイトと新しい google-cast-sdk-no-bluetooth
CocoaPods の両方で利用できます。
iOS でゲストモードを削除する
Google Cast SDK v4.4.3 以降、Bluetooth® の権限を必要としないゲストモードのサポートなしに追加の SDK を利用できます。これは、デベロッパー サイトと新しい google-cast-sdk-no-bluetooth
CocoaPods の両方で利用できます。
iOS Bluetooth® とマイクの権限
iOS は Bluetooth を使用して付近のデバイスをスキャンするため、ゲストモードで Bluetooth を使用する権限が必要です。マイクは、ゲストモード デバイスとペア設定する際に超音波トークンをリッスンするために必要です。また、権限も必要です。
適切な権限を得るには、アプリの Info.plist
ファイルに次のように 2 つのエントリを追加する必要があります。${PRODUCT_NAME}
をアプリの名前に置き換えます。アプリがキャスト以外の理由でこれらの権限を使用している場合は、説明を変更する必要があります。
<key>NSBluetoothPeripheralUsageDescription</key> <string>${PRODUCT_NAME} uses Bluetooth to discover nearby Cast devices.</string> <key>NSMicrophoneUsageDescription</key> <string>${PRODUCT_NAME} uses microphone access to listen for ultrasonic tokens when pairing with nearby Cast devices.</string>
これらのエントリは、iOS 10 以降では必須となっています。
サポートされているキャスト デバイス
iOS 送信者 - iOS のゲストモードは Bluetooth Low Energy(BLE)とオーディオ トークンを使用して、付近の Chromecast デバイスを識別します。BLE のサポートが新世代の Chromecast および Chromecast Audio デバイスに追加されました(円形で、2015 年 9 月にリリースされました)。そのため、ゲストモードは新世代のデバイスで動作します。iOS の送信デバイスを使用したゲストモードは、以前の世代の Chromecast デバイスでは動作しません。
Android 送信者 - Android のゲストモードでは、Wi-Fi を使用して付近の Chromecast デバイスを識別します。Android では、ゲストモードはすべての Chromecast と Chromecast Audio デバイス(以前の世代を含む)でサポートされています。
Nexus Player と Android TV はゲストモードに対応していません。
デベロッパーに関する考慮事項
セッションを開始するために必要な PIN コードのハンドシェイクは自動的に行われますが、交換が完了しない原因となる場合もあります。たとえば、テレビがミュートされている、または他の干渉が発生している可能性があります。
Google Cast SDK はゲストモードを自動的にサポートします。ゲストモードでウェブレシーバーが見つかった場合や、送信者と同じ Wi-Fi ネットワークに接続されている場合、アプリはキャスト ボタンを表示します。アプリがキャスト モードを検出し、キャスト アイコンを表示するために Wi-Fi 接続のチェックや必要がない場合を除き、ゲストモードをサポートしています。
ゲストモードでは、ローカルの Wi-Fi ではなくクラウドベースのリレーを使用して、送信側からウェブ受信側に通信します。そのため、次の機能はゲストモードではサポートされていません。
- Chrome のタブのミラーリング、Android のミラーリング
- ローカルに保存されたメディア(写真、動画、音声など)のキャスト
ゲストモードを無効にする
ゲストモードを無効にすると、アプリはゲストモードで付近のウェブレシーバーに接続できなくなりますが、アプリを実行している送信側デバイスと同じ Wi-Fi ネットワーク上にあるウェブ レシーバには通常どおり接続できます。
ローカルに保存されたメディアのミラーリングまたはキャスト
ローカルに保存されたメディアのミラーリングやキャストに依存しているアプリでは、ゲストモードを無効にする必要があります。ゲストモードを無効にする手順については、アプリケーション情報を編集するをご覧ください。
Android アプリ
Android アプリで、特定の機能のみがローカル ネットワーク アクセスを必要とし、ゲストモード接続では動作しない場合は、最新の Google Play 開発者サービス SDK クライアント ライブラリにある、キャスト デバイス オブジェクトの isOnLocalNetwork()
プロパティを使用できます。