Saat pengguna menjalani aktivitas sehari-hari, kacamata AI mereka mungkin kehilangan koneksi
ke perangkat host (seperti ponsel pengguna) atau kacamata mereka mungkin
tidak tersedia untuk sementara jika mereka melepas kacamata. Untuk memperhitungkan
perubahan ketersediaan perangkat semacam ini, aplikasi Anda dapat menggunakan XR Device
Availability API, yang menggabungkan sinyal ketersediaan perangkat ke dalam nilai
Lifecycle.State Android standar. Gunakan API ini untuk membantu mengelola perutean audio, aktivasi kata kunci, dan untuk mengetahui kapan harus mengharapkan input pengguna berdasarkan waktu ketersediaan kacamata AI.
Memahami status siklus proses
Tabel berikut mencantumkan cara sinyal ketersediaan perangkat dipetakan ke nilai
Lifecycle.State.
Status siklus proses |
Status perangkat |
Deskripsi |
|---|---|---|
|
Dibuat |
Objek siklus proses dibuat, tetapi belum diamati. |
|
Tidak aktif |
Layanan terhubung, tetapi pengguna tidak memakai perangkat. |
|
Aktif |
Pengguna memakai perangkat. |
|
Terputus |
Perangkat terputus atau koneksi layanan hilang. |
Memeriksa dan memantau ketersediaan perangkat
Untuk memeriksa dan memantau ketersediaan perangkat, Anda akan menggunakan konteks yang diproyeksikan bersama dengan status siklus proses untuk menentukan cara aplikasi Anda harus menangani setiap kasus:
val xrDevice = XrDevice.getCurrentDevice(projectedContext) xrDevice.getLifecycle().currentStateFlow .takeWhile { it != Lifecycle.State.DESTROYED } .collect { state -> when (state) { Lifecycle.State.STARTED -> { /* Device is ACTIVE (worn) */ } Lifecycle.State.CREATED -> { /* Device is INACTIVE (not worn) */ } else -> { /* Handle other states */ } } } }
Poin penting tentang kode
- Periksa koneksi: Sebelum mengakses siklus proses perangkat, panggil
ProjectedContext.isProjectedDeviceConnecteduntuk memverifikasi bahwa perangkat yang diproyeksikan terhubung ke perangkat host. - Dapatkan
ProjectedContext: Hanya panggilProjectedContext.createProjectedDeviceContextsetelah memverifikasi koneksi, dan pastikan Anda meneruskan konteks ini ke instanceXrDeviceAnda. - Menangani pembatalan validitas konteks:
deviceIdbaru dibuat setiap kali perangkat yang diproyeksikan terhubung. Setelah status mencapaiDESTROYED,ProjectedContextsaat ini tidak valid. Segera berhenti menggunakannya, dan tunggu koneksi baru. - Mengoptimalkan baterai dan resource: Tangani fungsi aplikasi dengan baik berdasarkan status siklus proses untuk menghemat resource sistem dan mengurangi konsumsi baterai. Misalnya, Anda harus berhenti memproyeksikan konten UI ke kacamata AI saat status berubah menjadi
CREATED.