Katılma Amacı

"Katılma niyeti" Android Sender'ın yeni bir özelliğidir ve "katılmak" için gönderen uygulaması Başka uygulamalar tarafından başlatılan bir yayınlama oturumu veya sesi'ne dokunun. Gönderen uygulamanızı, Cast tarafından oluşturulan bir amaç tarafından başlatılacak şekilde ayarladınız SDK'dır.

Örneğin, Cast oturumu başlatmak için ses kullanılırken Cast SDK'sı kullanıcının tüm Android telefonlarda oynatmayı kontrol etmesine olanak tanıyan bildirim aynı ağda yer alır. Bildirime dokunulduğunda Cast SDK, yayınlama oturumuna katılmak için uygulamanızı başlatma isteğidir.

Bkz. CastVideolar-Android örneği inceleyebilirsiniz.

Android Sender kullanma

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

Uygulamanızın halihazırda Android Sender SDK'sının 11.4.0. build.gradle ürününde:

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

Amacı işlemek istediğiniz etkinliğe yeni bir intent filtresi ekleyin. İlgili içeriği oluşturmak için kullanılan intent, uygulamanızı başlatmak için Uzaktan Kumanda Bildirimleri (RCN) tarafından kullanılacak ve bir yayın oturumuna katılın. Size önerilen etkinliği şurada kullanmanız önerilir: SessionManagerListener ve onSessionStarted() veya onSessionStartFailed() çağrılır. Yeni intent filtresinin Android sisteminin tamamında benzersiz olduğundan emin olun. Biz Bunun için <data> etiketini kullanmanızı öneririz:

<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 intent filtresini tanımladığınız etkinlikte, SessionManager.startSession(Intent) onResume() içinde:

Kotlin
ziyaret edin.
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ılmak için Niyet özelliğini kullanmak için uygulama URI'si ve paket adı şu şekilde olmalıdır: eklendi Google Cast Geliştirici Konsolu.

Intent'in çalışması için alıcınızın da listelenmiş ve yayınlanmış olması gerekir gerekir.

Uygulamanızı listelemek için listeleme seçeneğini "EVET" olarak değiştirin ve bir başlık gireceğim. ve uygulamanız için 512x512 boyutunda bir grafik ekleyin.

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

  1. Google Home uygulamasını bir Android telefona yükleyin ve cihazınızda kablosuz ağa bağlanın. telefon.
  2. Cast uyumlu cihaz, Google Home cihazını aynı ağ altında kurar.
  3. Şunu kullanarak Google Home cihazıyla bir yayın oturumu başlatın: Komut ve Kontrol (CaC) Aracı'nda, başka bir Android veya iOS cihazı kullanarak ya da sesle veya Web Alıcısı'nın başlatılır.
  4. Telefonunuza RCN'nin yüklenmesi için birkaç saniye bekleyin ve bildirime dokunarak şunları yapın: Niyeti tetikleyin. Amaç, aşağıdaki özelliklere sahip tüm uygulamalarda yayınlanmalıdır: niyeti, oturuma katılmak için gerekli verilerle kaydeder.

SessionManagerListener.onSessionStarted(T, String) tetiklenecek ve oturuma katılacak.

Doğrulama

Uygulamanız oturuma başarıyla katılırsa SessionManagerListener.onSessionStarted(T, String) çağrılır. Aksi halde SessionManagerListener.onSessionStartFailed(T, int) çağrılır. Uygulamanızın bu etkinlikleri zaten düzgün bir şekilde işlediğini varsayarsak (ör. örneğin genişletilmiş kumanda veya mini kumandayı kullanıyorsanız, yapmaktan çekinmeyin.