가입 의도
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
'참여 의향' Android 발신기의 새로운 기능으로
발신자 앱으로 '참여' 다른 앱에서 시작한 전송 세션
있습니다. Cast가 만든 인텐트로 발신기 앱이 실행되도록 설정
사용할 수 있습니다.
예를 들어 음성을 사용하여 전송 세션을 시작하면 Cast SDK가
사용자가 모든 Android 휴대전화에서 재생을 제어할 수 있는 알림
동일한 네트워크에 연결됩니다. 알림을 탭하면 Cast SDK가
인텐트를 사용하여 Cast 세션에 참여할 수 있습니다.
자세한 내용은
CastVideos-Android 샘플
를 참조하세요.
Android Sender 사용
이 기능을 사용 설정하려면 앱에서 다음 단계를 따르세요.
앱에서 이미 사용 중인 Android Sender SDK 버전이 다음보다 이후인지 확인합니다.
11.4.0. build.gradle
에서:
dependencies {
api 'com.google.android.gms:play-services-cast-framework:11.4.0'
}
인텐트를 처리할 활동에 새 인텐트 필터를 추가합니다. 이
인텐트는 원격 제어 알림 (RCN)에서 앱을 실행하는 데 사용됩니다.
Cast 세션에 참여할 수 있습니다.
다음과 같은 활동을 사용하는 것이 좋습니다.
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 개발자 콘솔 설정
참여 인텐트 기능을 활용하려면 앱 URI와 패키지 이름이 다음과 같아야 합니다.
에
Google Cast 개발자 콘솔.

인텐트가 작동하려면 수신자도 나열되고 게시되어야 합니다.
있습니다.
앱을 나열하려면 등록정보 옵션을 '예'로 전환합니다. 제목을 입력하면
설명 및 512x512 크기의 그래픽을 표시합니다.

설정 후 원격 제어 알림으로 구현을 테스트할 수 있습니다.
(RCN)을 입력합니다.
- Android 휴대전화에 Google Home 앱을 설치하고
있습니다.
- Cast 지원 기기는 동일한 네트워크에 Google Home 기기를 설정합니다.
- 다음을 사용하여 Google Home 기기로 Cast 세션을 시작합니다.
명령어 및 제어 (CaC) 도구,
다른 Android나 iOS 기기에서 또는 음성을 통해 웹 수신기가 작동하는지 확인합니다.
앱이 실행됩니다.
- 휴대전화에 RCN이 연결될 때까지 몇 초간 기다렸다가 알림을 탭하여
인텐트를 트리거합니다. 인텐트는 현재 상태를 나타내는
세션에 참가하는 데 필요한 데이터가 포함된 인텐트를 등록합니다.
SessionManagerListener.onSessionStarted(T, String)
드림
트리거되어 세션에 참여합니다.
인증
앱이 세션에 성공적으로 참가하면
SessionManagerListener.onSessionStarted(T, String)
드림
알 수 있습니다. 그렇지 않으면
SessionManagerListener.onSessionStartFailed(T, int)
드림
알 수 있습니다. 앱이 이미 이러한 이벤트를 제대로 처리한다고 가정합니다.
확장 컨트롤러 또는 미니 컨트롤러 실행)을
추가 작업을 할 수 있습니다.
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 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."]]