The Android Developer Challenge is back! Submit your idea before December 2.

Detail tampilan jam

Detail adalah setiap fitur dalam tampilan jam yang ditampilkan selain waktu. Misalnya, indikator baterai termasuk detail. Complications API digunakan baik untuk tampilan jam maupun aplikasi penyedia data.

Bagian selebihnya dari dokumen ini menjelaskan penyedia data, tampilan jam, dan jenis detail.

Penyedia data detail

Aplikasi yang menyediakan data (seperti level baterai, cuaca, atau data penghitung langkah) untuk detail pada tampilan jam disebut "penyedia data detail". Penyedia data ini memberikan data mentah dan tidak bertanggung jawab mengontrol bagaimana data tersebut ditampilkan pada tampilan jam. Untuk menulis aplikasi yang menyediakan data pada tampilan jam, lihat Mengekspos data ke detail.

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

Alur data detail

Detail dalam tampilan jam

Tampilan jam menerima data dari penyedia data detail, yang memungkinkan tampilan jam menyertakan detail tanpa memerlukan kode untuk mendapatkan data yang mendasarinya. Tampilan jam mempertahankan kontrol atas bagaimana data ditampilkan, sehingga dapat mengintegrasikan data secara natural dengan desainnya; lihat mendesain pola untuk detail.

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

Jenis detail

Jenis detail menentukan jenis data yang dapat ditampilkan pada detail atau disediakan oleh penyedia data. Misalnya, jenis SHORT_TEXT digunakan jika sebagian besar data terdiri dari string pendek. Objek ComplicationData akan selalu memiliki jenis detail tunggal yang menetapkan kolom dan opsional. Biasanya, kolom wajib menunjukkan bagian utama data; sebagian besar jenis mengambil namanya dari nama kolom wajib.

Penyedia data menggunakan jenis detail ini secara berbeda dengan tampilan jam:

  • Penyedia data memilih jenis data detail yang akan disediakan (termasuk kolom opsional mana dari jenis tersebut yang akan disediakan) dan berapa banyak jenis berbeda yang dapat didukung. Misalnya, penyedia penghitung langkah mungkin mendukung jenis RANGED_VALUE dan SHORT_TEXT, sedangkan penyedia "rapat berikutnya" mungkin mendukung jenis SHORT_TEXT dan LONG_TEXT.
  • Anda dapat memilih banyaknya detail yang disertakan dalam tampilan jam dan jenis detail yang didukung. Misalnya, detail tombol pada tampilan jam mungkin mendukung jenis SHORT_TEXT, ICON, dan RANGED_VALUE, sedangkan detail pengukur pada tampilan jam mungkin hanya mendukung jenis RANGED_VALUE.

Untuk mempelajari lebih lanjut berbagai jenis detail dan kolom yang didukung oleh setiap jenis, lihat Menggunakan dan Menguji Jenis Detail.

Ringkasan API

Berikut ini adalah ringkasan dari Complications API. API tersebut merupakan bagian dari Support Library Wearable; lihat Referensi Wear API.

  • ComplicationData
    • Bisa dipaketkan (menggunakan Paket secara internal); tidak berubah
    • Mewakili semua jenis data detail
    • Menyertakan 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 pengelola detail, untuk digunakan oleh penyedia
    • Memungkinkan penyedia mengirimkan data detail ke sistem
  • ComplicationProviderService
    • Memperluas Service dan menyertakan metode callback untuk merespons sistem detail
    • Semua metode callback dipanggil pada thread utama
  • ComplicationText
    • Digunakan untuk menyediakan nilai berbasis teks dalam objek ComplicationData.
    • Menyertakan opsi untuk nilai yang bergantung pada waktu, yang nilai teksnya bergantung pada waktu saat ini
  • ProviderChooserIntent
    • Class utilitas non-instantiable yang tidak umum dipakai; sebagai gantinya, gunakan ComplicationHelperActivity
  • ProviderInfoRetriever
    • Dapat 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
    • Dapat 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 penyedia tersebut hanya menyediakan informasi yang bisa didapat sendiri oleh tampilan jam
  • TextRenderer
    • Mempermudah menggambar teks pada kanvas

Selain itu, class WatchFaceService.Engine memuat metode berikut:

  • setActiveComplications()
    • Harus dipanggil oleh tampilan jam untuk memberi tahu objek ComplicationManager mengenai slot detail yang tersedia dan jenis 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 tercantum dalam class SystemProviders.