가입 의도

'참여 인텐트'는 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)를 호출합니다.

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)
    }
    ...
}
자바
@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)을 사용하여 구현을 테스트할 수 있습니다.

  1. Android 휴대전화에 Google Home 앱을 설치하고 휴대전화에서 Wi-Fi에 연결합니다.
  2. Cast 지원 기기는 동일한 네트워크에 Google Home 기기를 설정합니다.
  3. 명령어 및 제어 (CaC) 도구, 다른 Android 또는 iOS 기기를 사용하거나 음성을 통해 Google Home 기기로 Cast 세션을 시작하고 웹 수신기 앱이 실행되었는지 확인합니다.
  4. 휴대전화에 RCN이 연결되도록 몇 초 동안 기다렸다가 알림을 탭하여 인텐트를 트리거합니다. 세션 참여에 필요한 데이터와 함께 인텐트를 등록하는 모든 앱에 이 인텐트를 브로드캐스트해야 합니다.

SessionManagerListener.onSessionStarted(T, String)가 트리거되고 세션에 참여합니다.

인증

앱이 세션에 성공적으로 참여하면 SessionManagerListener.onSessionStarted(T, String)가 호출됩니다. 그러지 않으면 SessionManagerListener.onSessionStartFailed(T, int)가 호출됩니다. 앱에서 이미 이러한 이벤트를 올바르게 처리한다고 가정하면 (예: 확장된 컨트롤러 또는 미니 컨트롤러 실행) 더 이상 조치를 취할 필요가 없습니다.