Niat untuk Bergabung

"Niat untuk Bergabung" adalah fitur baru Android Sender yang memungkinkan aplikasi pengirim untuk "bergabung" sesi Cast yang telah dimulai oleh aplikasi lain atau suara. Anda menyiapkan aplikasi pengirim yang akan diluncurkan oleh intent yang dibuat oleh Transmisi SDK.

Misalnya, saat menggunakan suara untuk memulai sesi Transmisi, SDK Cast akan membuat notifikasi yang memungkinkan pengguna mengontrol pemutaran di semua ponsel Android berada di jaringan yang sama. Saat notifikasi diketuk, Cast SDK akan membuat untuk meluncurkan aplikasi Anda guna bergabung ke sesi Cast.

Lihat Contoh CastVideo-Android untuk implementasi Intent untuk Bergabung.

Menggunakan Pengirim Android

Untuk mengaktifkan fitur ini, lakukan langkah-langkah berikut di aplikasi Anda:

Pastikan aplikasi Anda sudah menggunakan versi Android Sender SDK yang lebih besar dari 11.4.0. Di build.gradle:

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

Tambahkan filter intent baru ke aktivitas tempat Anda ingin menangani intent tersebut. Tujuan intent akan digunakan oleh Notifikasi Remote Control (RCN) untuk meluncurkan aplikasi Anda dan bergabung ke sesi Cast. Sebaiknya gunakan aktivitas di mana SessionManagerListener yang dihosting, dan onSessionStarted() atau onSessionStartFailed() akan dipanggil. Pastikan filter intent baru bersifat unik di seluruh sistem Android. Rab sebaiknya gunakan tag <data> untuk melakukannya, seperti berikut:

<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>

Contoh tag <data>:

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

Dalam aktivitas tempat Anda menentukan filter intent baru, panggil SessionManager.startSession(Intent) dalam onResume():

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);
    }
    ...
}

Penyiapan Konsol Developer Google Cast

Untuk memanfaatkan fitur Intent to Join, URI aplikasi dan nama paket harus ditambahkan ke dalam Konsol Developer Google Cast.

Penerima Anda juga harus dicantumkan dan dipublikasikan agar Intent to Join berfungsi mereka dapat terus berjalan dengan baik.

Untuk mencantumkan aplikasi, alihkan opsi listingan ke "YA" dan memberikan judul, deskripsi, dan grafik 512x512 untuk aplikasi.

Setelah penyiapan, Anda dapat menguji implementasi dengan Notifikasi Remote Control (RCN) seperti di bawah ini:

  1. Instal Aplikasi Google Home di ponsel Android, dan hubungkan ke Wi-Fi di ponsel.
  2. Perangkat yang kompatibel untuk Cast menyiapkan perangkat Google Home pada jaringan yang sama.
  3. Mulai sesi Transmisi dengan perangkat Google Home menggunakan Alat Command and Control (CaC), perangkat Android atau iOS lain, atau melalui suara dan memeriksa apakah Penerima Web aplikasi diluncurkan.
  4. Tunggu beberapa detik untuk mendapatkan RCN di ponsel, dan ketuk notifikasi untuk memicu intent. Intent harus disiarkan ke aplikasi apa saja yang mendaftarkan intent dengan data yang diperlukan untuk bergabung ke sesi.

SessionManagerListener.onSessionStarted(T, String) akan dipicu dan bergabung ke sesi.

Verifikasi

Jika aplikasi Anda berhasil bergabung ke sesi, SessionManagerListener.onSessionStarted(T, String) dipanggil. Jika tidak, SessionManagerListener.onSessionStartFailed(T, int) dipanggil. Dengan asumsi aplikasi Anda sudah menangani peristiwa tersebut dengan benar (untuk Misalnya, meluncurkan pengontrol yang diperluas atau pengontrol mini), Anda tidak perlu melakukan apa pun.