'참여 인텐트'는 Android Sender의 새로운 기능으로, 발신자 앱이 다른 앱 또는 음성에서 시작한 Cast 세션에 '참여'할 수 있습니다. 발신기 앱이 Cast SDK에서 만든 인텐트에 의해 실행되도록 설정합니다.
예를 들어 음성을 사용하여 전송 세션을 시작할 때 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)에서 앱을 실행하고 전송 세션에 참여하기 위해 사용됩니다.
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"/>
새 인텐트 필터를 정의하는 활동에서 onResume()
의 SessionManager.startSession(Intent)
를 호출합니다.
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) } ... }
@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 개발자 콘솔 설정
참여 인텐트 기능을 사용하려면 Google Cast 개발자 콘솔에 앱 URI 및 패키지 이름을 추가해야 합니다.
조인할 인텐트가 제대로 작동하려면 수신기도 나열되고 게시되어야 합니다.
앱을 나열하려면 등록정보 옵션을 '예'로 전환하고 앱의 제목, 설명, 512x512 그래픽을 제공합니다.
설정 후 아래와 같이 원격 제어 알림(RCN)을 사용하여 구현을 테스트할 수 있습니다.
- Android 휴대전화에 Google Home 앱을 설치하고 휴대전화에서 Wi-Fi에 연결합니다.
- Cast 지원 기기는 동일한 네트워크에 Google Home 기기를 설정합니다.
- 명령어 및 제어 (CaC) 도구, 다른 Android 또는 iOS 기기를 사용하거나 음성을 통해 Google Home 기기로 Cast 세션을 시작하고 웹 수신기 앱이 실행되었는지 확인합니다.
- 휴대전화에 RCN이 연결되도록 몇 초 동안 기다렸다가 알림을 탭하여 인텐트를 트리거합니다. 세션 참여에 필요한 데이터와 함께 인텐트를 등록하는 모든 앱에 이 인텐트를 브로드캐스트해야 합니다.
SessionManagerListener.onSessionStarted(T, String)
가 트리거되고 세션에 참여합니다.
인증
앱이 세션에 성공적으로 참여하면 SessionManagerListener.onSessionStarted(T, String)
가 호출됩니다. 그러지 않으면 SessionManagerListener.onSessionStartFailed(T, int)
가 호출됩니다. 앱에서 이미 이러한 이벤트를 올바르게 처리한다고 가정하면 (예: 확장된 컨트롤러 또는 미니 컨트롤러 실행) 더 이상 조치를 취할 필요가 없습니다.