参加の意向

「参加する意思」これは Android Sender の新機能で、 送信側アプリから「参加」できます。他のアプリまたはによって開始されたキャスト セッション できます。Cast によって作成されたインテントによって起動されるように送信側アプリを設定する できます。

たとえば、音声を使ってキャスト セッションを開始する場合、Cast SDK は すべての Android スマートフォンで再生を操作できる通知 同じネットワーク上にあると仮定します。通知をタップすると、Cast SDK は インテントを使用してアプリを起動し、キャスト セッションに参加します。

詳しくは、 CastVideos-Android サンプル をご覧ください。

Android の送信者を使用する

この機能を有効にするには、アプリで次の手順を行います。

アプリで Android Sender SDK のバージョンが 11.4.0.build.gradle 内:

dependencies {
    api 'com.google.android.gms:play-services-cast-framework:11.4.0'
}

インテントを処理するアクティビティに新しいインテント フィルタを追加します。「 インテントは、アプリを起動するためにリモート コントロール通知(RCN)によって使用されます キャスト セッションに参加します。 このコースでは、 SessionManagerListener ホストされている場合、 onSessionStarted() または onSessionStartFailed() が呼び出されます。 新しいインテント フィルタが Android システム全体で一意であることを確認します。水 そのためには、次のように <data> タグを使用することをおすすめします。

<intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT" />
  <category android:name="android.intent.category.BROWSABLE" />
  <data android:scheme="your_app_scheme" android:host="your_app_host"
        android:path="your_app_path"/>
</intent-filter>

<data> タグの例:

<data android:scheme="https" android:host="example.com"
      android:path="/cast/join"/>

新しいインテント フィルタを定義するアクティビティで、 SessionManager.startSession(Intent) onResume() 内:

Kotlin
で確認できます。
override fun onResume() {
    ...
    val intent = intent
    // Intent with format: "<your_app_scheme>://<your_app_host><your_app_path>"
    val intentToJoinUri = Uri.parse("https://example.com/cast/join")
    if (intent.data != null && intent.data == intentToJoinUri) {
        mCastContext.sessionManager.startSession(intent)
    }
    ...
}
<ph type="x-smartling-placeholder">
</ph>
Java
@Override
protected void onResume() {
    ...
    Intent intent = getIntent();
    // Intent with format: "<your_app_scheme>://<your_app_host><your_app_path>"
    Uri intentToJoinUri = Uri.parse("https://example.com/cast/join");
    if (intent.getData() != null && intent.getData().equals(intentToJoinUri)) {
        mCastContext.getSessionManager().startSession(intent);
    }
    ...
}

Google Cast Developer Console のセットアップ

Intent to Join 機能を利用するには、アプリの URI とパッケージ名を で追加された Google Cast Developer Console:

Intent to Join が機能するには、レシーバもリストアップして公開する必要があります。 確認します。

アプリを一覧表示するには、掲載情報オプションを [YES] に切り替えますタイトル、 アプリの 512x512 のグラフィックです

セットアップ後、リモート コントロール通知を使用して実装をテストできます。 (RCN)を以下のとおり使用しています。

  1. Android スマートフォンに Google Home アプリをインストールし、 できます。
  2. Cast 対応デバイスは同じネットワークで Google Home デバイスをセットアップします。
  3. コマンド&コントロール(CaC)ツール 別の Android デバイスまたは iOS デバイス、または音声で、ウェブ レシーバーが アプリが起動されました
  4. 数秒待ってからスマートフォンに RCN が表示され、通知をタップして インテントがトリガーされます。インテントは、変更される可能性のあるすべてのアプリに セッションに参加するために必要なデータにインテントを登録します。

SessionManagerListener.onSessionStarted(T, String) セッションがトリガーされます。

確認

アプリがセッションへの参加に成功すると、 SessionManagerListener.onSessionStarted(T, String) が呼び出されます。それ以外の場合は SessionManagerListener.onSessionStartFailed(T, int) が呼び出されます。アプリがこれらのイベントをすでに適切に処理していると仮定すると( 拡張コントローラやミニ コントローラの起動など)は、 何もする必要はありません。