Streaming Aplikasi Pendamping

Di Android 13, fitur streaming aplikasi memungkinkan ponsel melakukan streaming aplikasinya ke perangkat yang terhubung, dan memungkinkan perangkat tersebut berinteraksi dengan aplikasi. Peran COMPANION_DEVICE_APP_STREAMING baru memungkinkan aplikasi membuat dan mengelola proxy untuk perangkat jarak jauh yang terhubung untuk melakukan streaming aplikasi dari perangkat lokal ke perangkat jarak jauh. Aplikasi yang memegang peran COMPANION_DEVICE_APP_STREAMING dapat memperoleh izin untuk membuat tampilan virtual, meluncurkan aplikasi di dalamnya, dan kemudian melakukan streaming video aplikasi yang diluncurkan ke perangkat lain. Aplikasi pemegang peran juga dapat memasukkan input dan peristiwa mikrofon yang diterima dari perangkat jarak jauh kembali ke perangkat lokal, seolah-olah perangkat tersebut terhubung sebagai periferal.

Arsitektur

Mulai Android 13, Virtual Device Manager dan Companion Device Manager (CDM) baru menjadi elemen utama untuk mendukung streaming aplikasi dan interaksi dengan perangkat jarak jauh yang terhubung.

Manajer Perangkat Virtual

Streaming aplikasi bekerja dengan memanfaatkan tampilan virtual . Manajer Perangkat Virtual membuat tampilan virtual yang terpisah dari tampilan utama yang terlihat. Saat pengguna menyetujui untuk memulai streaming aplikasi, aplikasi tersebut diluncurkan pada, atau ditransfer ke, tampilan virtual. Konten tampilan virtual ditransfer dalam aliran video ke perangkat yang terhubung untuk ditampilkan.

Virtual Device Manager mencakup API yang memungkinkan pembuatan, registrasi, dan pengelolaan instans VirtualDevice .

Instans VirtualDevice adalah proksi untuk perangkat yang terhubung dan kemampuannya. Instans VirtualDevice memungkinkan perangkat yang terhubung untuk menerima, menampilkan, dan berinteraksi dengan aliran aplikasi masuk, dengan melakukan hal berikut:

  • Membuat instance VirtualDisplay yang dimaksudkan untuk ditampilkan pada layar perangkat yang terhubung.
  • Menyuntikkan aliran audio jarak jauh, seperti dari mikrofon perangkat yang terhubung, ke perangkat lokal untuk diputar.
  • Memasukkan peristiwa input jarak jauh, misalnya dari keyboard perangkat yang terhubung, ke perangkat lokal untuk diputar.

Manajer Perangkat Pendamping

CDM mengelola status konektivitas dan menerapkan persyaratan peran yang harus dipenuhi untuk mengaktifkan streaming aplikasi.

Gambar berikut mengilustrasikan interaksi antara perangkat lokal dan jarak jauh selama streaming aplikasi:

app-streaming-interaction

Gambar 1. Interaksi antara perangkat lokal dan jarak jauh selama streaming aplikasi

Penerapan peran streaming aplikasi pendamping

OEM dapat mengimplementasikan aplikasi dengan peran COMPANION_DEVICE_APP_STREAMING untuk memungkinkan pengalaman lintas perangkat yang kaya dan aman di perangkat mereka.

Untuk membuat perangkat virtual guna mengaktifkan streaming aplikasi, aplikasi harus menjadi pemegang peran peran COMPANION_DEVICE_APP_STREAMING . Ketika peran tersebut diberikan, aplikasi menerima izin CREATE_VIRTUAL_DEVICE , yang memungkinkan aplikasi membuat perangkat virtual. Pemegang peran diharapkan mengimplementasikan streaming aplikasi dengan membuat instance VirtualDevice yang bertindak sebagai proksi untuk perangkat yang terhubung. Kelas VirtualDevice menyediakan metode yang memungkinkan ekstraksi permukaan gabungan dari tampilan virtual, cocok untuk streaming ke perangkat lain. Kelas VirtualDevice juga menyediakan API untuk memasukkan peristiwa input yang terjadi pada perangkat jarak jauh ke perangkat lokal, sehingga memungkinkan aplikasi yang berjalan pada perangkat lokal tampak seolah-olah aplikasi tersebut berjalan secara asli pada perangkat jarak jauh.

Ikuti langkah-langkah berikut untuk menerapkan peran streaming aplikasi pendamping:

  1. Buat aplikasi yang meminta izin REQUEST_COMPANION_PROFILE_APP_STREAMING dalam manifes.

  2. Minta pengguna untuk memberikan izin aplikasi untuk melakukan streaming aplikasi.

  3. Buat instance CDM AssociationRequest untuk meminta peran COMPANION_DEVICE_APP_STREAMING . Aplikasi menerima izin CREATE_VIRTUAL_DEVICE ketika peran tersebut diberikan.

  4. Panggil VirtualDeviceManager#create() untuk membuat instance VirtualDevice . Dengan instance VirtualDevice , aplikasi dapat membuat dan mengelola tampilan virtual dan input virtual.

  5. Luncurkan maksud notifikasi yang tertunda pada tampilan virtual dan buat rekaman video dari tampilan tersebut.

  6. Buat koneksi ke perangkat yang terhubung dan streaming tampilan virtual ke perangkat yang terhubung.

  7. Suntikkan kembali peristiwa masukan dari perangkat yang terhubung ke perangkat lokal melalui VirtualDevice API.

  8. Saat pengguna menutup aplikasi streaming pada perangkat jarak jauh, akhiri streaming dan hancurkan instance VirtualDevice . Pada titik ini, aplikasi streaming sebelumnya berjalan di latar belakang perangkat lokal dan koneksi ditutup.

  9. Jika perlu, tunggu lebih banyak sinyal dari perangkat yang terhubung untuk memulai ulang streaming aplikasi.

Aplikasi bertanggung jawab untuk menghubungkan ke perangkat jarak jauh, melaporkan status konektivitas ke CDM, dan menerapkan persyaratan keamanan seperti yang dijelaskan dalam CDD .

Persyaratan pemegang peran COMPANION_DEVICE_APP_STREAMING

CDM memberikan peran COMPANION_DEVICE_APP_STREAMING ketika pengguna mengaitkan aplikasi streaming aplikasi dengan perangkat. Peran ini dikaitkan dengan profil perangkat sehingga ada kontrol terhadap aplikasi mana yang dapat ditambahkan ke Play Store yang cocok dengan profil ini. Lihat Peran Android untuk daftar persyaratan peran COMPANION_DEVICE_APP_STREAMING . Hubungi kontak Google Anda untuk informasi lebih lanjut.

Kemampuan pemegang peran COMPANION_DEVICE_APP_STREAMING

Untuk melakukan streaming aplikasi, peran COMPANION_DEVICE_APP_STREAMING mengasumsikan bahwa aplikasi pemegang peran memiliki kemampuan dan perilaku berikut:

  • Membuat dan mengelola koneksi ke perangkat lain.
  • Buat dan kelola tampilan virtual tepercaya, termasuk tampilan yang tidak terkunci, sebagai berikut:
    • Mulai aktivitas di tampilan virtual.
    • Memasukkan peristiwa yang terjadi pada aplikasi streaming pada perangkat yang terhubung kembali ke perangkat lokal, seperti memutar peristiwa sentuh di tablet pada koordinat yang sama di ponsel.
    • Ambil data audio dari aplikasi streaming.
    • Ganti aliran mikrofon perangkat lokal dengan aliran mikrofon perangkat yang terhubung saat aplikasi streaming menggunakan mikrofon.
    • Ganti aliran kamera perangkat lokal dengan aliran kamera perangkat yang terhubung saat aplikasi streaming menggunakan kamera.
  • Kelola dan streaming notifikasi dari perangkat lokal ke perangkat yang terhubung, dan ambil tindakan terhadap notifikasi.
  • Streaming metadata dari perangkat lokal, seperti daftar aplikasi yang tersedia di perangkat lokal, ke perangkat yang terhubung.
  • Minta verifikasi perangkat.