Katılma Amacı

Android'in yeni bir özelliği olan birleştirme özelliği sayesinde diğer uygulamaların veya sesin başlattığı bir yayınlama oturumuna katılınabilir. Gönderen uygulamanızı Cast SDK tarafından oluşturulan bir amaç tarafından başlatılacak şekilde ayarlarsınız.

Örneğin, bir Cast oturumu başlatmak için sesi kullanırken, Cast SDK kullanıcının aynı ağdaki tüm Android telefonlarda oynatmayı kontrol etmesine imkan tanıyan bir bildirim oluşturur. Bildirime dokunulduğunda, Cast SDK'sı Cast oturumuna katılmak üzere uygulamanızı başlatma niyetini oluşturur.

Katılma niyetiyle çalışan bir uygulama için CastVideos-Android örneğine bakın.

Android Gönderen Kullanma

Bu özelliği etkinleştirmek için uygulamanızda aşağıdaki adımları uygulayın:

Uygulamanızın 11.4.0'dan büyük Android Gönderen SDK sürümünü kullandığından emin olun. build.gradle dilinde:

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

Niyeti işlemek istediğiniz etkinliğe yeni bir intent filtresi ekleyin. Amaç, Uzaktan Kumanda Bildirimleri (RCN) tarafından uygulamanızı başlatmak ve bir yayın oturumuna katılmak için kullanılır. SessionManagerListener uygulamasının barındırıldığı etkinliği kullanmanız önerilir. onSessionStarted() veya onSessionStartFailed() çağrılır. Yeni amaç filtresinin tüm Android sisteminde benzersiz olduğundan emin olun. Bunun için <data> etiketini kullanmanızı öneririz. Bunun için aşağıdaki adımları uygulayın:

<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> etiketi örnekleri:

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

Yeni amaç filtresini tanımladığınız etkinlikte, onResume() içinde SessionManager.startSession(Intent) öğesini çağırın:

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)
    }
    ...
}
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 Geliştirici Konsolu kurulumu

Katılma Niyeti özelliğini kullanmak için uygulama URI'si ve paket adı Google Cast Geliştirici Konsolu'na eklenmelidir.

Katılma amacının doğru şekilde çalışması için alıcınızın da listelenip yayınlanması gerekir.

Uygulamanızı listelemek için listeleme seçeneğini "YES"e ayarlayın ve başlık, açıklama ve uygulamanız için 512x512 boyutunda bir grafik sağlayın.

Kurulumdan sonra, uygulamayı aşağıdaki şekilde Uzaktan Kumanda Bildirimleri (RCN) ile test edebilirsiniz:

  1. Google Home uygulamasını bir Android telefona yükleyip telefonundaki kablosuz ağa bağlanın.
  2. Cast uyumlu cihaz, Google Home cihazını aynı ağ altında kurar.
  3. Komut ve Kontrol (CaC) Aracı'nı veya başka bir Android ya da iOS cihazı kullanarak veya ses yoluyla Google Home cihazıyla bir Yayın oturumu başlatın ve Web Alıcısı uygulamasının başlatılıp başlatılmadığını kontrol edin.
  4. Telefonunuzda RCN'yi görmek için birkaç saniye bekleyin ve niyeti tetiklemek için bildirime dokunun. Amaç, oturuma katılmak için gereken verileri kaydeden bir uygulamaya yayınlanmalıdır.

SessionManagerListener.onSessionStarted(T, String) tetiklenir ve oturuma katılır.

Doğrulama

Uygulamanız oturuma başarılı bir şekilde katılırsa SessionManagerListener.onSessionStarted(T, String) çağrılır. Aksi takdirde, SessionManagerListener.onSessionStartFailed(T, int) çağrılır. Uygulamanızın bu etkinlikleri zaten doğru bir şekilde işlediğini (örneğin, genişletilmiş kumanda veya mini kumanda başlatma) varsa başka bir işlem yapmanıza gerek yoktur.