Merencanakan dukungan untuk berbagai jenis kacamata AI

Perangkat XR yang kompatibel
Panduan ini membantu Anda membangun pengalaman untuk jenis perangkat XR ini.
Kacamata AI

Berbagai jenis kacamata AI memiliki kemampuan yang berbeda. Misalnya, meskipun semua kacamata AI menampilkan pengalaman audio melalui suara, beberapa kacamata AI juga memiliki layar tempat aplikasi Anda dapat menampilkan UI yang dibuat dengan Jetpack Compose Glimmer.

Untuk menciptakan pengalaman pengguna yang lancar di berbagai perangkat kacamata AI, 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 AI 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 dari siklus proses aktivitas standar, tetapi juga mencakup beberapa perbedaan utama yang mendukung kemampuan berbagai jenis kacamata AI.

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

Berikut perincian peristiwa utama, dengan penjelasan untuk interaksi yang khusus untuk aktivitas yang diproyeksikan ke kacamata AI:

  • onCreate()
    • Dipanggil saat aktivitas yang diproyeksikan dibuat.
    • Inisialisasi UI Glimmer Jetpack Compose 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 AI 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 menyadari bahwa kacamata AI aktif dan merespons, meskipun mereka tidak melihat layar:

  • 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 singkat, sistem akan menghapus aktivitas dari latar depan dan akhirnya memicu onStop().

Memahami aktivitas yang diproyeksikan dan konteks yang diproyeksikan

Kacamata AI 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 AI, 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 kacamata AI.

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 AI, 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.