Menjadikan aplikasi Anda tetap terlihat di Wear

Wear OS otomatis menangani peralihan ke mode daya rendah untuk aplikasi yang aktif saat pengguna tidak lagi menggunakan smartwatch. Hal ini disebut mode standby sistem. Jika pengguna berinteraksi lagi dengan smartwatch dalam jangka waktu tertentu, Wear OS akan mengembalikan pengguna ke aplikasi yang sebelumnya mereka tinggalkan.

Untuk kasus penggunaan tertentu, misalnya pengguna ingin melihat detak jantung dan kecepatan selama berlari, Anda juga dapat mengontrol apa yang ditampilkan dalam mode standby daya rendah. Aplikasi Wear OS yang berjalan dalam mode interaktif dan mode standby disebut aplikasi yang selalu aktif.

Membuat aplikasi terus terlihat akan memengaruhi masa pakai baterai, jadi pertimbangkan dampak tersebut saat menambahkan fitur ini ke aplikasi Anda.

Mengonfigurasi project

Untuk mendukung mode standby, ikuti langkah-langkah berikut:

  1. Buat atau update project Anda berdasarkan konfigurasi pada halaman Membuat dan menjalankan aplikasi wearable.
  2. Tambahkan izin WAKE_LOCK ke file Manifes Android:
<uses-permission android:name="android.permission.WAKE_LOCK" />

Mengaktifkan mode selalu aktif

Untuk menggunakan class AmbientLifecycleObserver, lakukan hal berikut:

  1. Terapkan antarmuka AmbientLifecycleObserver.AmbientLifecycleCallback, seperti dalam contoh berikut. Metode akan kosong pada tahap ini, tetapi selanjutnya panduan ini akan memberikan detail perubahan apa saja yang harus dilakukan untuk membuat visualisasi masuk dan keluar dari mode standby.

    Kotlin

        val ambientCallback = object : AmbientLifecycleObserver.AmbientLifecycleCallback {
          override fun onEnterAmbient(ambientDetails: AmbientLifecycleObserver.AmbientDetails) {
            // ... Called when moving from interactive mode into ambient mode.
          }
    
          override fun onExitAmbient() {
            // ... Called when leaving ambient mode, back into interactive mode.
          }
    
          override fun onUpdateAmbient() {
            // ... Called by the system in order to allow the app to periodically
            // update the display while in ambient mode. Typically the system will
            // call this every 60 seconds.
          }
        }
        
  2. Buat AmbientLifecycleObserver dan daftarkan observer. Biasanya, langkah ini akan digunakan di onCreate() atau composable tingkat atas jika menggunakan Compose untuk Wear OS, agar perilaku selalu aktif diaktifkan selama siklus proses aktivitas.

    Kotlin

    private val ambientObserver = AmbientLifecycleObserver(activity, callback)
    
    override fun onCreate(savedInstanceState: Bundle) {
      super.onCreate(savedInstanceState)
      lifecycle.addObserver(observer)
    
      // ...
    }
    
  3. Hapus observer dengan memanggil removeObserver(), jika perilaku selalu aktif tidak lagi diperlukan. Misalnya, Anda dapat memanggil metode ini dalam metode onDestroy() aktivitas Anda.

Mengubah tampilan visual dalam mode standby

Secara default, saat mengimplementasikan mode selalu aktif, layar tidak akan mengubah tampilannya saat smartwatch masuk ke mode standby. Anda dapat mengubah perilaku ini dengan mengganti metode di AmbientLifecycleCallback.

Untuk membantu menghemat daya, lakukan hal berikut:

  • Terangi lebih sedikit piksel, dan buat sebagian besar layar tetap hitam. Sebaiknya hanya tampilkan informasi penting dalam mode standby, dan berikan detail selengkapnya saat pengguna masuk ke mode interaktif.
  • Sesuaikan konten untuk update yang lebih jarang. Misalnya, tampilkan timer ke menit terdekat, bukan detik terdekat.
  • Dalam objek AmbientDetails yang diteruskan ke onEnterAmbient():
    • Jika deviceHasLowBitAmbient disetel, nonaktifkan anti-aliasing jika memungkinkan.
    • Jika burnInProtectionRequired disetel, ubah visualisasi secara berkala, dan hindari area putih yang menyala terus.

Saat menggunakan Compose untuk Wear OS, sebaiknya gunakan metode callback ini untuk memperbarui status, yang memungkinkan sistem merekomposisi UI dengan tepat.

Untuk contoh cara melakukannya, lihat referensi berikut: