Di Android 13, fitur streaming aplikasi memungkinkan ponsel
men-streaming 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 memegang 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 blok penyusun utama untuk mendukung streaming aplikasi dan interaksi dengan perangkat terhubung jarak jauh.
Pengelola Perangkat Virtual
Streaming aplikasi berfungsi dengan memanfaatkan tampilan virtual. Virtual Device Manager membuat tampilan virtual yang terpisah dari tampilan utama yang terlihat. Saat pengguna menyetujui untuk mulai 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 menyertakan API yang memungkinkan pembuatan, pendaftaran, dan pengelolaan instance VirtualDevice
.
Instance VirtualDevice
adalah proxy untuk perangkat yang terhubung dan kemampuannya. Instance VirtualDevice
memungkinkan perangkat yang terhubung untuk menerima, menampilkan, dan berinteraksi dengan aliran aplikasi yang masuk, dengan melakukan hal berikut:
- Membuat instance
VirtualDisplay
yang dimaksudkan untuk ditampilkan di layar perangkat yang terhubung. - Menyuntikkan aliran audio jarak jauh, seperti dari mikrofon perangkat yang terhubung, ke perangkat lokal untuk diputar.
- Menyuntikkan peristiwa input jarak jauh, seperti dari keyboard perangkat yang 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:
Gambar 1. Interaksi antara perangkat lokal dan jarak jauh selama streaming aplikasi
Penerapan peran streaming aplikasi pendamping
OEM dapat menerapkan aplikasi dengan peran COMPANION_DEVICE_APP_STREAMING
untuk
memungkinkan pengalaman lintas perangkat yang kaya dan aman di perangkat mereka.
Untuk membuat perangkat virtual agar dapat melakukan 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 yang 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 aplikasi yang berjalan di perangkat lokal akan tampak seolah-olah
berjalan secara native di perangkat jarak jauh.
Ikuti langkah-langkah berikut untuk menerapkan peran streaming aplikasi pendamping:
Buat aplikasi yang meminta izin
REQUEST_COMPANION_PROFILE_APP_STREAMING
dalam manifes.Minta pengguna memberikan izin aplikasi untuk melakukan streaming aplikasi.
Buat instance CDM
AssociationRequest
untuk meminta peranCOMPANION_DEVICE_APP_STREAMING
. Aplikasi menerima izinCREATE_VIRTUAL_DEVICE
saat peran diberikan.Panggil
VirtualDeviceManager#create()
untuk membuat instanceVirtualDevice
. Dengan instanceVirtualDevice
, aplikasi dapat membuat dan mengelola tampilan virtual dan input virtual.Luncurkan maksud tertunda notifikasi di tampilan virtual dan buat perekaman video tampilan tersebut.
Buat koneksi ke perangkat yang terhubung dan streaming tampilan virtual ke perangkat yang terhubung.
Menyuntikkan kembali peristiwa input dari perangkat yang terhubung ke perangkat lokal melalui API
VirtualDevice
.Saat pengguna menutup aplikasi streaming di perangkat jarak jauh, akhiri streaming dan hentikan instance
VirtualDevice
. Pada tahap ini, aplikasi streaming yang sebelumnya berjalan di latar belakang pada perangkat lokal dan koneksi ditutup.Jika perlu, tunggu sinyal lainnya dari perangkat yang 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 dengan perangkat. Peran ini dikaitkan dengan
profil perangkat sehingga ada beberapa kontrol atas aplikasi yang dapat ditambahkan ke 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:
- Mulai aktivitas di tampilan virtual.
- Menyuntikkan kembali peristiwa yang terjadi pada aplikasi yang di-streaming di perangkat yang terhubung ke perangkat lokal, seperti memutar peristiwa sentuhan di tablet pada koordinat yang sama di ponsel.
- Merekam data audio dari aplikasi yang di-streaming.
- Mengganti aliran mikrofon perangkat lokal dengan aliran mikrofon perangkat terhubung saat aplikasi yang di-streaming menggunakan mikrofon.
- Mengganti streaming kamera perangkat lokal dengan streaming kamera perangkat terhubung saat aplikasi yang di-streaming menggunakan kamera.
- Mengelola dan melakukan streaming notifikasi dari perangkat lokal ke perangkat yang terhubung, serta mengambil tindakan pada notifikasi.
- Streaming metadata dari perangkat lokal, seperti daftar aplikasi yang tersedia di perangkat lokal, ke perangkat yang terhubung.
- Minta verifikasi perangkat.