参加の意向
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
「参加する意思」これは 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()
内:
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>
@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)を以下のとおり使用しています。
- Android スマートフォンに Google Home アプリをインストールし、
できます。
- Cast 対応デバイスは同じネットワークで Google Home デバイスをセットアップします。
- 「
コマンド&コントロール(CaC)ツール
別の Android デバイスまたは iOS デバイス、または音声で、ウェブ レシーバーが
アプリが起動されました
- 数秒待ってからスマートフォンに RCN が表示され、通知をタップして
インテントがトリガーされます。インテントは、変更される可能性のあるすべてのアプリに
セッションに参加するために必要なデータにインテントを登録します。
SessionManagerListener.onSessionStarted(T, String)
セッションがトリガーされます。
確認
アプリがセッションへの参加に成功すると、
SessionManagerListener.onSessionStarted(T, String)
が呼び出されます。それ以外の場合は
SessionManagerListener.onSessionStartFailed(T, int)
が呼び出されます。アプリがこれらのイベントをすでに適切に処理していると仮定すると(
拡張コントローラやミニ コントローラの起動など)は、
何もする必要はありません。
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-07-25 UTC。
[null,null,["最終更新日 2025-07-25 UTC。"],[[["\u003cp\u003eThe "Intent to Join" feature enables Android sender apps to join existing Cast sessions initiated by other apps or voice commands.\u003c/p\u003e\n"],["\u003cp\u003eTo enable this, add a specific intent filter to your activity, update your Android Sender SDK, and configure your app in the Google Cast Developer Console.\u003c/p\u003e\n"],["\u003cp\u003eThe Cast SDK creates an intent that launches your app and allows it to join the session when a user interacts with a Cast notification.\u003c/p\u003e\n"],["\u003cp\u003eVerify successful implementation by checking if \u003ccode\u003eSessionManagerListener.onSessionStarted\u003c/code\u003e or \u003ccode\u003eSessionManagerListener.onSessionStartFailed\u003c/code\u003e is called appropriately.\u003c/p\u003e\n"],["\u003cp\u003eRefer to the CastVideos-Android sample for a working implementation of the Intent to Join feature.\u003c/p\u003e\n"]]],["The \"Intent to Join\" feature allows an Android sender app to join an existing Cast session. To enable it, ensure the app uses Android Sender SDK version 11.4.0 or greater, add a unique intent filter to an activity, and call `SessionManager.startSession(Intent)` in `onResume()`. The app URI and package name must be added to the Google Cast Developer Console, and the receiver must be listed. Tapping a Remote Control Notification triggers an intent, starting a session and calling `onSessionStarted()` if successful, otherwise `onSessionStartFailed()` is called.\n"],null,["# Intent to Join\n\n\"Intent to Join\" is a new feature of the Android Sender that allows a\nsender app to \"join\" a Cast session that has been initiated by other apps or\nvoice. You set up your sender app to be launched by an intent created by Cast\nSDK.\n\nFor example, when using voice to start a Cast session, Cast SDK creates a\nnotification that allows a user to control the playback on all Android phones\non the same network. When the notification is tapped, Cast SDK creates the\nintent to launch your app to join the Cast session.\n\nSee the\n[CastVideos-Android sample](https://github.com/googlecast/CastVideos-android)\nfor a working implementation of Intent to Join.\n\nUsing an Android Sender\n-----------------------\n\nTo enable this feature, perform the following steps in your app:\n\nMake sure your app is already using Android Sender SDK version greater than\n11.4.0. In `build.gradle`: \n\n dependencies {\n api 'com.google.android.gms:play-services-cast-framework:11.4.0'\n }\n\nAdd a new intent filter to an activity where you want to handle the intent. The\nintent will be used by Remote Control Notifications (RCN) to launch your app\nand join a Cast session.\nWe recommend you use the activity where\n[`SessionManagerListener`](/cast/docs/reference/android/com/google/android/gms/cast/framework/SessionManagerListener)\nis hosted, and either\n[`onSessionStarted()`](/cast/docs/reference/android/com/google/android/gms/cast/framework/SessionManagerListener#onSessionStarted(T,%20java.lang.String))\nor\n[`onSessionStartFailed()`](/cast/docs/reference/android/com/google/android/gms/cast/framework/SessionManagerListener#onSessionStartFailed(T,%20int))\nwill be called.\nMake sure the new intent filter is unique across the entire Android system. We\nrecommend you use the `\u003cdata\u003e` tag to do that, as follows: \n\n \u003cintent-filter\u003e\n \u003caction android:name=\"android.intent.action.VIEW\" /\u003e\n \u003ccategory android:name=\"android.intent.category.DEFAULT\" /\u003e\n \u003ccategory android:name=\"android.intent.category.BROWSABLE\" /\u003e\n \u003cdata android:scheme=\"your_app_scheme\" android:host=\"your_app_host\"\n android:path=\"your_app_path\"/\u003e\n \u003c/intent-filter\u003e\n\nExamples of `\u003cdata\u003e` tag: \n\n \u003cdata android:scheme=\"https\" android:host=\"example.com\"\n android:path=\"/cast/join\"/\u003e\n\nIn the activity where you define the new intent filter, call\n[`SessionManager.startSession(Intent)`](/cast/docs/reference/android/com/google/android/gms/cast/framework/SessionManager#startSession(android.content.Intent))\nin `onResume()`:\nKotlin \n\n```kotlin\noverride fun onResume() {\n ...\n val intent = intent\n // Intent with format: \"\u003cyour_app_scheme\u003e://\u003cyour_app_host\u003e\u003cyour_app_path\u003e\"\n val intentToJoinUri = Uri.parse(\"https://example.com/cast/join\")\n if (intent.data != null && intent.data == intentToJoinUri) {\n mCastContext.sessionManager.startSession(intent)\n }\n ...\n}\n```\nJava \n\n```java\n@Override\nprotected void onResume() {\n ...\n Intent intent = getIntent();\n // Intent with format: \"\u003cyour_app_scheme\u003e://\u003cyour_app_host\u003e\u003cyour_app_path\u003e\"\n Uri intentToJoinUri = Uri.parse(\"https://example.com/cast/join\");\n if (intent.getData() != null && intent.getData().equals(intentToJoinUri)) {\n mCastContext.getSessionManager().startSession(intent);\n }\n ...\n}\n```\n\nGoogle Cast Developer Console setup\n-----------------------------------\n\nTo utilize the Intent to Join feature, the app URI and package name must be\nadded in the\n[Google Cast Developer Console](https://cast.google.com/publish/#/overview).\n\nYour receiver must also be listed and published for Intent to Join to work\nproperly.\n\nTo list your app, toggle the listing option to \"YES\" and provide a title,\ndescription, and a 512x512 graphic for your app.\n\nAfter setup, you can test the implementation with Remote Control Notifications\n(RCN) as below:\n\n1. Install the Google Home App on an Android phone, and connect to Wi-Fi on the phone.\n2. The Cast-enabled device sets up the Google Home device under the same network.\n3. Initiate a Cast session with the Google Home device using the [Command and Control (CaC) Tool](https://casttool.appspot.com/cactool/), another Android or iOS device, or through voice and check if the Web Receiver app is launched.\n4. Wait for a few seconds to get RCN on the phone, and tap the notification to trigger the intent. The intent should be broadcasted to any app that registers the intent with the required data to join the session.\n\n[`SessionManagerListener.onSessionStarted(T, String)`](/cast/docs/reference/android/com/google/android/gms/cast/framework/SessionManagerListener#onSessionStarted(T,%20java.lang.String))\nwill be triggered and join the session.\n\nVerification\n------------\n\nIf your app successfully joins the session,\n[`SessionManagerListener.onSessionStarted(T, String)`](/cast/docs/reference/android/com/google/android/gms/cast/framework/SessionManagerListener#onSessionStarted(T,%20java.lang.String))\nis called. Otherwise,\n[`SessionManagerListener.onSessionStartFailed(T, int)`](/cast/docs/reference/android/com/google/android/gms/cast/framework/SessionManagerListener#onSessionStartFailed(T,%20int))\nis called. Assuming your app already handles those events properly (for\nexample, launching expanded controller or mini controller), you don't have to\ndo anything further."]]