Berencana mendukung berbagai jenis kacamata audio dan kacamata tampilan

Perangkat XR yang kompatibel
Panduan ini membantu Anda membangun pengalaman untuk jenis perangkat XR ini.
Kacamata Audio &
Tampilan

Berbagai jenis kacamata audio dan kacamata layar memiliki kemampuan yang berbeda. Misalnya, meskipun semua kacamata audio dan kacamata layar menampilkan pengalaman audio melalui suara, hanya kacamata layar yang memiliki layar tempat aplikasi Anda dapat menampilkan UI yang dibangun dengan Jetpack Compose Glimmer.

Untuk menciptakan pengalaman pengguna yang lancar di berbagai perangkat, rencanakan Activity untuk kacamata guna memeriksa kemampuan perangkat yang berbeda. Pendekatan ini menyederhanakan pengembangan dengan memungkinkan Anda membuat satu aktivitas yang menyesuaikan perilakunya, bukan beberapa aktivitas yang menargetkan perangkat tertentu.

Memahami siklus proses aktivitas yang diproyeksikan

Aktivitas yang Anda buat untuk kacamata audio dan kacamata tampilan tidak berjalan langsung di perangkat, tetapi diproyeksikan ke perangkat dari perangkat host (seperti ponsel pengguna). Aktivitas khusus yang Anda buat untuk tujuan ini adalah aktivitas yang diproyeksikan. Siklus proses aktivitas yang diproyeksikan dibangun berdasarkan siklus proses aktivitas standar, tetapi juga mencakup beberapa perbedaan utama yang mendukung kemampuan berbagai jenis kacamata audio dan kacamata tampilan.

Gambar 1. Peristiwa utama dalam siklus proses aktivitas yang diproyeksikan.

Berikut perincian peristiwa utama, dengan keterangan untuk interaksi yang khusus untuk aktivitas yang diproyeksikan ke kacamata audio dan kacamata tampilan:

  • onCreate()
    • Dipanggil saat aktivitas yang diproyeksikan dibuat.
    • Inisialisasi UI Jetpack Compose Glimmer aplikasi Anda dan komponen lainnya di sini.
  • onStart()
    • Dipanggil saat aktivitas yang diproyeksikan dimulai dan pengguna mengetahui aplikasi.
  • onResume()
    • Dipanggil saat aktivitas yang diproyeksikan mendapatkan kembali fokus. Saat aktivitas dalam fokus, aktivitas tersebut dapat berinteraksi dan dapat menggunakan input touchpad atau tombol.
    • Dipanggil saat kacamata dipakai kembali (dipakai), setelah sebelumnya dilepas dari kepala (dilepas).
  • onPause()
    • Dipanggil saat aktivitas yang diproyeksikan kehilangan fokus, tetapi pengguna masih menyadari aplikasi Anda. Saat aktivitas tidak fokus, aktivitas tidak dapat berinteraksi dan berhenti menggunakan input.
  • onStop()
    • Dipanggil saat sistem yakin bahwa pengguna tidak lagi menyadari aplikasi Anda.
    • Dipanggil saat kacamata dilepas dari kepala (dilepas).
  • onDestroy()
    • Dipanggil saat aktivitas yang diproyeksikan akan dihapus. Saat ini dipanggil, sistem akan melepaskan semua resource yang terikat ke aktivitas.

Memahami pengaruh status tampilan terhadap siklus proses aktivitas yang diproyeksikan

Dalam Activity standar, status siklus proses berubah saat layar perangkat dinonaktifkan, biasanya berpindah ke onPause() atau onStop(). Sebaliknya, siklus proses aktivitas yang diproyeksikan tidak berubah saat layar kacamata pintar diaktifkan atau dinonaktifkan. Perilaku ini berarti aktivitas yang diproyeksikan akan terus berjalan dalam status Dimulai atau Dilanjutkan meskipun layar dinonaktifkan, sehingga pengalaman audio aplikasi Anda dapat terus berlanjut tanpa gangguan.

Perubahan status aktivitas lainnya yang dipicu oleh berbagai peristiwa sistem dan pengguna berperilaku seperti biasa.

Memahami pengaruh awareness pengguna terhadap perkiraan aktivitas Anda

Pengguna dapat mengetahui aktivitas yang Anda proyeksikan meskipun tidak terlihat. Kesadaran mengacu pada semua cara pengguna dapat merasakan dan berinteraksi dengan pengalaman aplikasi Anda, termasuk yang berikut:

  • Mendengarkan audio, masukan yang terdengar, atau isyarat suara lainnya.
  • Tindakan aplikasi yang memicu LED yang terlihat pengguna, seperti indikator privasi jika aplikasi Anda mengakses kamera atau mikrofon.

Dalam situasi ini, pengguna mengetahui bahwa kacamata audio dan kacamata tampilan aktif dan merespons, meskipun mereka tidak melihat tampilan:

  • Status onStart() untuk aktivitas yang diproyeksikan berarti aktivitas tersebut aktif.
  • Status onResume() berarti aktivitas dapat berinteraksi dan dapat menerima input touchpad, atau menerima pengiriman input utama.

Selama pengguna mengetahui aplikasi Anda, aktivitas Anda tetap aktif dan berada di latar depan. Jika sistem tidak mendeteksi sinyal kesadaran selama jangka waktu yang singkat, sistem akan menghapus aktivitas dari latar depan dan akhirnya memicu onStop().

Memahami aktivitas yang diproyeksikan dan konteks yang diproyeksikan

Kacamata audio dan kacamata layar diperlakukan sebagai perangkat terhubung yang memperluas kemampuan ponsel pengguna. Konteks yang diproyeksikan adalah Context yang kompatibel dengan perangkat dan memungkinkan aplikasi berinteraksi dengan hardware di perangkat kacamata yang terhubung—seperti sensor, kamera, atau mikrofonnya—bukan hardware ponsel. Saat Anda mengembangkan pengalaman untuk kacamata audio dan kacamata layar, aplikasi Anda harus menggunakan konteks yang diproyeksikan untuk mengakses hardware kacamata.

Konteks yang diproyeksikan dapat diberikan secara otomatis ke aplikasi Anda, bergantung pada konteks aktivitas panggilan:

  • Untuk aktivitas yang diproyeksikan: Jika kode aplikasi Anda berjalan dari dalam aktivitas yang diproyeksikan, konteks aktivitasnya sendiri sudah merupakan konteks yang diproyeksikan. Dalam skenario ini, panggilan yang dilakukan dalam aktivitas tersebut sudah dapat mengakses hardware kacamata.

  • Untuk aplikasi atau layanan ponsel: Jika bagian aplikasi Anda di luar aktivitas yang diproyeksikan (seperti aktivitas ponsel atau layanan) perlu mengakses hardware kacamata, bagian tersebut harus secara eksplisit mendapatkan konteks yang diproyeksikan. Untuk melakukannya, gunakan metode createProjectedDeviceContext().

Untuk mengetahui informasi selengkapnya, lihat Menggunakan konteks yang diproyeksikan untuk mengakses hardware di kacamata audio dan kacamata tampilan.

Memahami API yang kompatibel dengan perangkat

Beberapa API Android standar mengubah hardware perangkat yang diaksesnya, bergantung pada Context aktivitas panggilan. Saat menerima konteks yang diproyeksikan, API ini mengakses hardware kacamata, bukan hardware di perangkat ponsel host:

  • CameraManager: Mengakses kamera di kacamata.
  • SensorManager: Mengambil data sensor (misalnya, data giroskop atau akselerometer) dari kacamata.
  • AudioManager: Mengelola streaming audio, volume, dan perutean di kacamata.
  • AudioRecord: Merekam audio menggunakan mikrofon kacamata.