Streaming aplikasi pendamping

Di Android 13, fitur streaming aplikasi memungkinkan ponsel menstreaming aplikasi ke perangkat 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 guna menstreaming aplikasi dari perangkat lokal ke perangkat jarak jauh. Aplikasi yang memiliki peran COMPANION_DEVICE_APP_STREAMING dapat memperoleh izin untuk membuat tampilan virtual, meluncurkan aplikasi di dalamnya, lalu melakukan streaming video aplikasi yang diluncurkan ke perangkat lain. Aplikasi pemegang peran juga dapat menyuntikkan 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, Pengelola Perangkat Virtual baru dan Pengelola Perangkat Pendamping (CDM) membentuk elemen penyusun utama untuk mendukung streaming aplikasi dan interaksi dengan perangkat terhubung jarak jauh.

Pengelola Perangkat Virtual

Streaming aplikasi berfungsi dengan memanfaatkan tampilan virtual. Pengelola Perangkat Virtual membuat tampilan virtual yang terpisah dari tampilan utama yang terlihat. Saat pengguna menyetujui untuk mulai melakukan streaming aplikasi, aplikasi akan diluncurkan di, atau ditransfer ke, layar virtual. Konten tampilan virtual ditransfer dalam streaming video ke perangkat yang terhubung untuk ditampilkan.

Pengelola Perangkat Virtual mencakup API yang memungkinkan pembuatan, pendaftaran, dan pengelolaan instance VirtualDevice.

Instance VirtualDevice adalah proxy untuk perangkat terhubung dan kapabilitasnya. Instance VirtualDevice memungkinkan perangkat terhubung menerima, menampilkan, dan berinteraksi dengan streaming aplikasi yang masuk, dengan melakukan hal berikut:

  • Membuat instance VirtualDisplay yang dimaksudkan untuk ditampilkan di layar perangkat terhubung.
  • Memasukkan streaming audio jarak jauh, seperti dari mikrofon perangkat terhubung, ke perangkat lokal untuk diputar.
  • Memasukkan peristiwa input jarak jauh, seperti dari keyboard perangkat terhubung, ke perangkat lokal untuk pemutaran.

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

interaksi-streaming-aplikasi

Gambar 1. Interaksi antara perangkat lokal dan perangkat 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 beragam dan aman di perangkat mereka.

Untuk membuat perangkat virtual guna mengaktifkan streaming aplikasi, aplikasi harus menjadi pemegang peran COMPANION_DEVICE_APP_STREAMING. Saat peran diberikan, aplikasi menerima izin CREATE_VIRTUAL_DEVICE, yang memungkinkan aplikasi membuat perangkat virtual. Pemegang peran diharapkan menerapkan streaming aplikasi dengan membuat instance VirtualDevice yang bertindak sebagai proxy untuk perangkat terhubung. Class VirtualDevice menyediakan metode yang memungkinkan ekstraksi permukaan gabungan dari tampilan virtual, yang cocok untuk streaming ke perangkat lain. Class VirtualDevice juga menyediakan API untuk menyuntikkan peristiwa input yang terjadi di perangkat jarak jauh ke perangkat lokal, sehingga memungkinkan aplikasi yang berjalan di perangkat lokal muncul seolah-olah berjalan secara native di 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 kepada aplikasi untuk melakukan streaming aplikasi.

  3. Buat instance CDM AssociationRequest untuk meminta peran COMPANION_DEVICE_APP_STREAMING. Aplikasi akan menerima izin CREATE_VIRTUAL_DEVICE saat peran diberikan.

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

  5. Luncurkan intent tertunda notifikasi di tampilan virtual dan buat perekaman video tampilan tersebut.

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

  7. Memasukkan kembali peristiwa input dari perangkat terhubung ke perangkat lokal melalui API VirtualDevice.

  8. Saat pengguna menutup aplikasi streaming di perangkat jarak jauh, akhiri streaming dan hapus instance VirtualDevice. Pada tahap ini, aplikasi yang sebelumnya melakukan streaming akan berjalan di latar belakang pada perangkat lokal dan koneksi akan ditutup.

  9. Jika perlu, tunggu sinyal lainnya dari perangkat terhubung untuk memulai ulang streaming aplikasi.

Aplikasi bertanggung jawab untuk terhubung 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 saat pengguna mengaitkan aplikasi streaming aplikasi dengan perangkat. Peran ini dikaitkan dengan profil perangkat sehingga ada beberapa kontrol atas aplikasi yang dapat ditambahkan ke Google Play Store yang cocok dengan profil ini. Lihat peran Android untuk mengetahui daftar persyaratan peran COMPANION_DEVICE_APP_STREAMING. Hubungi kontak Google Anda untuk mendapatkan informasi selengkapnya.

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:
    • Memulai aktivitas di layar virtual.
    • Menyuntikkan kembali peristiwa yang terjadi pada aplikasi streaming di perangkat terhubung ke perangkat lokal, seperti memutar peristiwa sentuh di tablet pada koordinat yang sama di ponsel.
    • Merekam data audio dari aplikasi streaming.
    • Mengganti streaming mikrofon perangkat lokal dengan streaming mikrofon perangkat terhubung saat aplikasi streaming menggunakan mikrofon.
    • Mengganti streaming kamera perangkat lokal dengan streaming kamera perangkat terhubung saat aplikasi streaming menggunakan kamera.
  • Mengelola dan menstreaming notifikasi dari perangkat lokal ke perangkat yang terhubung, dan mengambil tindakan pada notifikasi.
  • Melakukan streaming metadata dari perangkat lokal, seperti daftar aplikasi yang tersedia di perangkat lokal, ke perangkat terhubung.
  • Minta verifikasi perangkat.