Save the date! Android Dev Summit is coming to Sunnyvale, CA on Oct 23-24, 2019.

Detail tampilan jam

Detail adalah setiap fitur dalam tampilan jam yang ditampilkan sebagai tambahan terhadap waktu. Misalnya, indikator baterai merupakan sebuah detail. Complications API digunakan untuk tampilan jam dan aplikasi penyedia data.

Bagian lain dari dokumen ini menjelaskan penyedia data, tampilan jam, dan tipe detail.

Penyedia data detail

Aplikasi yang menyediakan data (seperti tingkat baterai, cuaca, atau data penghitung langkah) untuk detail tampilan jam disebut "penyedia data detail". Penyedia data ini menyediakan data mentah dan tidak bertanggung jawab mengontrol cara data mereka dirender pada tampilan jam. Untuk menulis aplikasi yang menyediakan data bagi tampilan jam, lihat Ekspos data ke detail.

Seperti yang ditunjukkan pada diagram di bawah ini, Wear OS by Google berada di tengah-tengah alur data dari penyedia ke tampilan jam.

Alur data detail

Detail dalam tampilan jam

Tampilan jam menerima data dari penyedia data detail, yang memungkinkan mereka memasukkan detail tanpa memerlukan kode untuk mendapatkan data yang mendasarinya. Tampilan jam mempertahankan kontrol atas bagaimana data dirender, sehingga mereka bisa mengintegrasikan data secara natural dengan desain mereka; lihat pola desain untuk detail.

Untuk mempelajari cara menambahkan detail ke tampilan jam, lihat Menambahkan Detail ke Tampilan Jam.

Tipe detail

Tipe detail menentukan jenis data yang bisa ditampilkan dalam detail atau disediakan oleh penyedia data. Misalnya, tipe SHORT_TEXT digunakan ketika sebagian besar data terdiri dari string pendek. Objek ComplicationData akan selalu memiliki tipe detail tunggal yang menetapkan kolom wajib diisi dan opsional. Biasanya, kolom wajib diisi merepresentasikan bagian utama data; sebagian besar tipe mengambil namanya dari kolom wajib diisi.

Penyedia data menggunakan tipe detail ini secara berbeda dari tampilan jam:

  • Penyedia data memilih tipe data detail yang akan diberikan (termasuk kolom opsional mana, dari tipe tersebut, yang akan diberikan) dan berapa banyak tipe berbeda yang bisa didukung. Misalnya, penyedia penghitung langkah mungkin mendukung tipe RANGED_VALUE dan SHORT_TEXT, sedangkan penyedia "pertemuan berikutnya" mungkin mendukung tipe SHORT_TEXT dan LONG_TEXT.
  • Anda bisa memilih berapa banyak detail yang akan dimasukkan dalam tampilan jam dan tipe detail yang didukung. Misalnya, detail tombol di tampilan jam mungkin mendukung tipe SHORT_TEXT, ICON, dan RANGED_VALUE, sedangkan pengukur di tampilan jam mungkin hanya mendukung tipe RANGED_VALUE.

Untuk mempelajari lebih lanjut tentang berbagai tipe detail dan kolom yang didukung oleh masing-masing tipe, lihat Menggunakan dan Menguji Tipe Detail.

Rangkuman API

Di bawah ini adalah rangkuman Complications API. API ini adalah bagian dari Wearable Support Library; lihat Referensi Wear API.

  • ComplicationData
    • Bisa dipaketkan (menggunakan Bundle secara internal); tidak berubah
    • Mewakili semua tipe data detail
    • Memuat Builder untuk pembuatan instance
  • ComplicationDrawable
    • Memungkinkan Anda merender seluruh detail pada kanvas
  • ComplicationHelperActivity
    • Digunakan untuk meminta izin berikut:
      com.google.android.wearable.permission.RECEIVE_COMPLICATION_DATA
    • Digunakan sebagai pengganti ProviderChooserIntent untuk memulai pemilih dalam hampir semua kasus
  • ComplicationManager
    • Wrapper bagi layanan manajer detail, untuk digunakan oleh penyedia
    • Memungkinkan penyedia mengirimkan data detail ke sistem
  • ComplicationProviderService
    • Memperluas Service dan memasukkan metode callback untuk merespons sistem detail
    • Semua metode callback dipanggil pada thread utama
  • ComplicationText
    • Digunakan untuk menyediakan nilai berbasis teks dalam objek ComplicationData.
    • Memuat opsi untuk nilai bergantung pada waktu, yang nilai teksnya bergantung pada waktu saat ini
  • ProviderChooserIntent
    • Class utilitas non-instantiable yang tidak lazim dipakai; gunakan ComplicationHelperActivity sebagai gantinya
  • ProviderInfoRetriever
    • Bisa digunakan (dengan aktivitas konfigurasi tampilan jam) untuk mengambil informasi penyedia data saat ini (aplikasi, nama penyedia, ikon) untuk semua detail yang termasuk dalam tampilan jam
  • ProviderUpdateRequester
    • Bisa digunakan oleh aplikasi penyedia data untuk memicu panggilan ke onComplicationUpdated dalam layanan penyedianya, untuk mengaktifkan push update
  • SystemProviders
    • Mencantumkan daftar penyedia sistem yang dianggap "aman", karena mereka hanya menyediakan informasi yang sudah bisa didapatkan oleh tampilan jam itu sendiri
  • TextRenderer
    • Mempermudah menggambar teks pada kanvas

Selain itu, class WatchFaceService.Engine berisi metode-metode berikut:

  • setActiveComplications()
    • Harus dipanggil oleh tampilan jam untuk memberi tahu objek ComplicationManager mengenai slot detail yang tersedia dan tipe yang didukung
  • onComplicationDataUpdate()
    • Dipanggil oleh objek ComplicationManager untuk mengirim data detail ke tampilan jam
  • setDefaultSystemComplicationProvider()
    • Menetapkan penyedia sistem default untuk sebuah detail. Metode ini memerlukan ID (sebagai integer) untuk penyedia sistem. ID yang tersedia terdaftar di class SystemProviders.