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

Menambahkan detail ke tampilan jam

Detail tampilan jam menampilkan data dari penyedia data. Dengan Complications API, tampilan jam dapat memilih penyedia data yang ingin digunakan untuk mendapatkan data yang mendasarinya. Dengan API ini, tampilan jam dapat menampilkan informasi selain waktu tanpa memerlukan kode untuk mendapatkan data tersebut.

Complications API juga memungkinkan pengguna untuk memilih penyedia data pilihan mereka. Selain itu, Wear OS by Google juga menyediakan antarmuka pengguna untuk pemilihan sumber data.

Detail

Untuk menambahkan detail ke tampilan jam, lakukan langkah berikut:

Menetapkan penyedia default untuk tampilan jam

Tampilan jam dapat menetapkan penyedia default yang akan digunakan sampai pengguna memilih salah satu penyedia. Tetapkan penyedia default menggunakan metode setDefaultComplicationProvider() dalam WatchFaceService.Engine. Metode ini dapat dipanggil kapan saja, tetapi tidak akan berfungsi jika pengguna sudah memilih penyedia untuk detail yang ditentukan.

Untuk sebagian besar penyedia, izin RECEIVE_COMPLICATION_DATA harus diberikan ke tampilan jam agar data dapat mengalir ke tampilan jam tersebut. Namun, beberapa penyedia sistem dianggap aman karena mereka hanya menyediakan informasi yang sebenarnya dapat diperoleh sendiri oleh tampilan jam. Penyedia yang aman tidak mengharuskan tampilan jam memiliki izin agar data dapat dikirimkan (lihat Penyedia sistem). Penyedia ini mungkin lebih baik digunakan sebagai default karena dapat menyediakan data secara langsung.

Selain itu, jika tampilan jam memiliki kemitraan dengan penyedia tertentu dan ingin menggunakannya sebagai default, tampilan dapat meminta penyedia untuk mencantumkannya sebagai tampilan jam yang aman.

Penyedia sistem

Sistem menyertakan penyedia yang dapat digunakan sebagai default. Metode setDefaultSystemComplicationProvider() dalam class WatchFaceService.Engine menetapkan penyedia sistem default untuk suatu detail. Metode ini memerlukan ID (sebagai integer) yang mewakili penyedia sistem. ID yang tersedia tercantum dalam class SystemProviders.

Tabel berikut menyajikan detail tentang beberapa penyedia sistem yang didukung:

Nama metode dalam class SystemProviders Keamanan Dapat menjadi default Catatan
dateProvider() Ya Ya Penyedia tanggal sistem standar. Ketukan akan membuka aplikasi Agenda standar.
currentTimeProvider() Ya Ya Penyedia "waktu dan tanggal" sistem standar. Tidak ada tindakan ketuk.
batteryProvider() Ya Ya Penyedia baterai sistem standar. Tidak ada tindakan ketuk.
stepCountProvider() Ya Ya Menunjukkan jumlah langkah harian, seperti yang dilaporkan oleh readDailyTotal.
unreadCountProvider() Ya Ya Menunjukkan jumlah deretan notifikasi yang belum dibaca.
worldClockProvider() Ya Ya Akan disetel default ke London atau New York. Dapat diketuk untuk mengubah zona waktu.
appsProvider() Ya Ya Pada awalnya akan menampilkan ikon "aplikasi", yang dapat diketuk untuk memilih aplikasi.
nextEventProvider() Tidak Ya (tetapi bukan penyedia yang aman) Penyedia "acara selanjutnya" sistem standar. Ketukan akan membuka aplikasi Agenda standar.

Mengizinkan pengguna memilih penyedia data

Wear OS menyediakan antarmuka pengguna (melalui Aktivitas) yang memungkinkan pengguna memilih penyedia untuk detail tertentu. Tampilan jam dapat memanggil metode createProviderChooserHelperIntent guna mendapatkan intent yang dapat digunakan untuk menampilkan antarmuka pemilih.

Saat memanggil createProviderChooserHelperIntent, tampilan jam akan menyediakan ID detail tampilan jam dan daftar jenis yang didukung. Jenis ini akan dicantumkan dalam urutan preferensi, biasanya dengan jenis yang menawarkan lebih banyak informasi, seperti nilai kisaran, dengan pertimbangan preferensi yang lebih tinggi.

Ketika pengguna memilih penyedia data, konfigurasi akan disimpan secara otomatis; tidak ada lagi yang diperlukan dari tampilan jam.

Lihat aplikasi contoh Tampilan Jam untuk kode dengan fitur lengkap yang direkomendasikan bagi antarmuka pengguna setelan.

Kode tersebut meliputi:

  • Antarmuka standar untuk setelan detail.
  • Akses mudah ke setelan lain.

Titik awal untuk meninjau kode tersebut adalah class AnalogComplicationConfigActivity, dengan metode getDataToPopulateAdapter() yang menghasilkan daftar entri setelan yang tersedia di UI.

Membuka pemilih penyedia

Tampilan jam harus memiliki izin berikut untuk menerima data detail dan membuka pemilih penyedia:

    com.google.android.wearable.permission.RECEIVE_COMPLICATION_DATA
    

Tampilan jam yang tidak memiliki izin di atas tidak akan dapat memulai pemilih penyedia.

Untuk mempermudah permintaan izin dan memulai pemilih, class ComplicationHelperActivity tersedia dalam support library perangkat wearable. Class ini harus digunakan sebagai ganti class ProviderChooserIntent untuk memulai pemilih dalam hampir semua kasus.

Meminta izin yang diperlukan

Untuk menggunakan ComplicationHelperActivity, tambahkan metode tersebut ke tampilan jam dalam file manifes:

    <activity android:name="android.support.wearable.complications.ComplicationHelperActivity"/>
    

Untuk memulai pemilih penyedia, panggil metode ComplicationHelperActivity.createProviderChooserHelperIntent untuk mendapatkan intent.

Intent yang baru dapat digunakan dengan startActivity atau startActivityForResult untuk meluncurkan pemilih.

Berikut adalah contoh penggunaan intent baru tersebut dengan startActivityForResult:

Kotlin

    startActivityForResult(
            ComplicationHelperActivity.createProviderChooserHelperIntent(
                    activity,
                    watchFace,
                    complicationId,
                    ComplicationData.TYPE_LARGE_IMAGE
            ),
            PROVIDER_CHOOSER_REQUEST_CODE
    )
    

Java

    startActivityForResult(
      ComplicationHelperActivity.createProviderChooserHelperIntent(
         getActivity(),
         watchFace,
         complicationId,
         ComplicationData.TYPE_LARGE_IMAGE),
      PROVIDER_CHOOSER_REQUEST_CODE);
    

Ketika dimulai, aktivitas helper akan memeriksa apakah izin sudah diberikan. Jika belum, aktivitas helper akan membuat permintaan izin runtime. Jika permintaan izin diterima (atau tidak dibutuhkan), pemilih penyedia akan ditampilkan.

Jika startActivityForResult digunakan dengan intent, hasil yang dikirim kembali ke Aktivitas pemanggilan akan memiliki kode hasil RESULT_OK jika penyedia berhasil ditetapkan, atau kode hasil RESULT_CANCELLED jika tidak ada penyedia yang ditetapkan.

Apabila penyedia ditetapkan, class ComplicationProviderInfo untuk penyedia yang dipilih akan disertakan dalam intent data hasil, sebagai tambahan dengan kunci ProviderChooserIntent#EXTRA_PROVIDER_INFO.

Menerima data detail

Untuk mulai menerima data detail, tampilan jam akan memanggil setActiveComplications() dalam class WatchFaceService.Engine dengan daftar ID detail tampilan jam. Tampilan jam membuat ID ini untuk secara unik mengidentifikasi slot pada tampilan jam tempat detail dapat muncul, dan meneruskannya ke metode createProviderChooserIntent() untuk memungkinkan pengguna memutuskan ke slot mana detail harus ditambahkan. Data detail dikirim melalui callback onComplicationDataUpdate().

Secara umum, tampilan jam membutuhkan izin di atas untuk menerima data detail, tetapi terdapat beberapa pengecualian. Secara khusus, tampilan jam hanya dapat menerima data dari penyedia jika salah satu kondisi berikut dipenuhi:

  • Penyedia merupakan penyedia sistem yang "aman",
  • Penyedia dan tampilan jam berasal dari aplikasi yang sama,
  • Penyedia memasukkan tampilan jam dalam daftar yang diizinkan sebagai tampilan jam yang "aman", atau
  • Tampilan jam memiliki izin

Jika tidak ada satu pun yang dipenuhi, ketika ComplicationData biasanya akan dikirimkan oleh penyedia ke tampilan jam, sistem justru akan mengirimkan data jenis TYPE_NO_PERMISSION. Untuk memperjelas, jenis ini menyertakan ikon (tanda seru) dan teks pendek ("--") untuk memungkinkannya dirender seperti jenis teks pendek atau jenis ikon.

Ketika menerima data TYPE_NO_PERMISSION, tampilan jam harus merendernya dengan tepat sehingga pengguna dapat melihat bahwa ada tindakan yang diperlukan agar detail dapat berfungsi. Jika memungkinkan, ketukan pada detail dalam keadaan ini akan meluncurkan permintaan izin. Hal ini dapat dilakukan menggunakan ComplicationHelperActivity.createPermissionRequestHelperIntent(), jika aktivitas helper telah ditambahkan ke aplikasi tampilan jam.

Jika pengguna menerima permintaan izin yang dibuat oleh aktivitas helper, update akan otomatis diminta untuk semua detail yang aktif pada tampilan jam sehingga memungkinkan data TYPE_NO_PERMISSION digantikan oleh data nyata.

Merender detail

Tampilan jam dapat merender data sesuai keinginan selama kolom yang diharapkan ditunjukkan; kolom yang diperlukan harus selalu disertakan. Tergantung jenisnya, beberapa kolom opsional juga harus disertakan (lihat kolom Catatan dalam tabel di bawah ini).

Kami memberikan pedoman desain untuk gaya kami sebagai saran untuk detail standar, tetapi developer dapat menggunakan gayanya sendiri atau menggabungkan data ke dalam tampilan jam dengan berbagai cara.

Menggambar detail

Class ComplicationDrawable memungkinkan Anda merender seluruh detail pada kanvas.

Class ini mendukung enam jenis detail utama yang ada, dan melakukan hal berikut untuk Anda:

  • Menangani semua aspek tata letak dan penataan gaya untuk detail.
  • Menggambar latar belakang, ikon, teks, dll., dalam garis batas.
  • Memungkinkan Anda menyetel banyak opsi. Hal ini meliputi, tetapi tidak terbatas pada, opsi untuk hal-hal berikut: warna latar belakang, bentuk dan radius sudut, tepian (atau tanpa tepian), warna teks, dan jenis huruf.
  • Mendekode gambar dan memasukkannya dalam cache.

Jika Anda menargetkan API level 24, objek ComplicationDrawable dapat ditetapkan dalam XML sebagai resource. Atau, Anda dapat membuat objek ComplicationDrawable secara terprogram. Gunakan metode draw() untuk menggambar detail dan menetapkan opsi gaya bagi mode standby dan interaktif.

ComplicationDrawable akan menggunakan gambar dan ikon yang bebas burn-in jika telah disediakan dan dibutuhkan oleh perangkat. Untuk mengaktifkannya, panggil metode ComplicationDrawable.setBurnInProtection() ketika properti perangkat diterima.

Lihat instruksi dan contoh mendetail untuk menggambar detail dalam ComplicationDrawable yang juga menyertakan contoh XML. Untuk contoh tampilan jam yang menggunakan class ini dan menyertakan contoh XML, lihat contoh AnalogComplicationWatchFaceService dalam aplikasi contoh Tampilan Jam.

Jika Anda tidak menggunakan objek ComplicationDrawable, gunakan TextRenderer untuk teks detail.

Merender teks

Class TextRenderer dimaksudkan untuk digunakan dalam detail, dan memudahkan penggambaran teks pada kanvas. Class ini mencakup fitur-fitur berikut:

  • Jika tujuh karakter (jumlah karakter maksimal dalam kolom teks pendek) tidak dapat dimuat dalam batas pada ukuran teks yang diminta, class akan memperkecil teks hingga dapat dimuat.
  • Teks dapat dialirkan melalui sejumlah baris yang sudah ditetapkan.
  • Teks dapat dimasukkan dalam elipsis jika tidak dapat dimuat.
  • Rendering disesuaikan untuk layar yang selalu aktif (mode standby).

Saat menginisialisasi mesin tampilan jam, Anda dapat membuat objek TextRenderer dan meneruskan objek TextPaint yang Anda inginkan agar digunakan oleh objek TextRenderer. Objek TextPaint menentukan font, ukuran teks, warna, dan banyak lagi. Anda harus membuat objek TextRenderer untuk setiap kolom, misalnya satu untuk kolom teks dan satu lagi untuk kolom judul.

Untuk contoh kode, termasuk untuk menentukan batas pada teks yang ingin Anda render, lihat TextRenderer.

Ketukan pada detail

Gunakan metode ComplicationDrawable.onTap() agar tampilan jam dapat meneruskan peristiwa ketukan ke detail. Metode ini dikembangkan dari fungsionalitas yang memungkinkan metode WatchFaceService.Engine.onTapCommand() dipicu oleh ketukan pada tampilan jam.

Anda dapat meneruskan koordinat ke ComplicationDrawable dengan panggilan onTap. Tindakan ini akan meluncurkan tindakan yang terkait dengan ComplicationDrawable yang memuat koordinat ketukan. Ketika metode tersebut dipanggil, Anda akan menerima pengembalian nilai true jika ComplicationDrawable meluncurkan tindakan yang terkait.

Gunakan metode setHighlightDuration() untuk menetapkan durasi bagi suatu detail agar tetap ditandai setelah metode onTap dipanggil.

Jika tidak menggunakan ComplicationDrawable untuk suatu detail, Anda harus mendeteksi ketukan dan mengaktifkan tindakan ketukan PendingIntent sendiri. Lihat Membuat Tampilan Jam yang Interaktif untuk mempelajari cara membuat tampilan jam yang merespons ketukan pengguna.

Jenis detail

Jenis detail menentukan jenis data yang ditampilkan dalam detail. Misalnya, jenis SHORT_TEXT akan tersedia saat data utamanya adalah string pendek. Dalam contoh jenis SHORT_TEXT, data yang bersifat opsional adalah ikon dan judul pendek.

Penyedia data menggunakan jenis detail ini berbeda dengan cara penyedia tampilan jam menggunakannya:

  • Penyedia data memilih jenis data detail yang akan diberikan. Misalnya, penyedia penghitung langkah mungkin mendukung jenis RANGED_VALUE dan SHORT_TEXT, sedangkan penyedia "pertemuan berikutnya" mungkin mendukung jenis SHORT_TEXT dan LONG_TEXT. Penyedia data juga memilih kolom opsional mana yang harus disertakan.
  • Penyedia tampilan jam memilih berapa banyak jenis detail yang akan didukung. Misalnya, detail melingkar pada tampilan jam mungkin mendukung jenis SHORT_TEXT, ICON, dan RANGED_VALUE, sedangkan pengukur pada tampilan jam mungkin hanya mendukung jenis RANGED_VALUE.

Objek ComplicationData akan selalu memiliki jenis detail tunggal. Setiap jenis detail memiliki kolom yang diperlukan dan kolom opsional. Biasanya, kolom yang diperlukan akan menunjukkan bagian utama data; sebagian besar jenis mengambil namanya dari nama kolom yang diperlukan.

Jenis yang ditentukan mungkin mencakup kumpulan kolom yang berbeda. Misalnya, SHORT_TEXT mungkin hanya berupa bagian teks tunggal, atau judul dan teks, atau ikon dan teks. Detail yang mendukung jenis tertentu harus dapat menampilkan semua varian yang diharapkan. Namun, beberapa kolom opsional tidak perlu ditampilkan (lihat kolom Catatan pada tabel di bawah). Misalnya, kolom Judul pendek dari jenis RANGED_VALUE tidak diperlukan sehingga, contohnya, pengukur dapat ditampilkan tanpa menyertakan teks.

Contoh Jenis Detail

Gambar berikut menunjukkan contoh-contoh jenis detail:

Jenis detail

Jenis dan kolom

Tabel berikut menjelaskan jenis dan kolom objek ComplicationData. Jika tampilan jam meminta kolom yang tidak valid untuk suatu jenis detail, nilai default untuk kolom tersebut akan ditampilkan. Contohnya, jika tampilan jam mencoba mengakses kolom Long text dalam jenis SHORT_TEXT, nilai default untuk kolom Long text (null) akan dikembalikan.

Jenis Kolom wajib diisi Kolom opsional Catatan
SHORT_TEXT Teks pendek Ikon
Ikon anti burn-in
Judul pendek
Salah satu Ikon/Judul pendek diharapkan akan ditampilkan jika salah satu atau keduanya disediakan.
ICON Ikon Ikon anti burn-in Digunakan saat teks tidak diperlukan. Ikon diharapkan memiliki warna tunggal, dan mungkin diberi warna oleh tampilan jam.
RANGED_VALUE Nilai
Nilai min
Nilai maks
Ikon
Ikon anti burn-in
Teks pendek
Judul pendek
Kolom opsional tidak dijamin akan ditampilkan. Jika ingin menggambar status progres sendiri, Anda dapat menggunakan metode setRangedValueProgressHidden() untuk menyembunyikan status progres yang disediakan oleh class ComplicationDrawable.
LONG_TEXT Teks panjang Judul panjang
Ikon
Ikon anti burn-in
Gambar kecil
Judul diharapkan akan ditampilkan jika disediakan.
SMALL_IMAGE Gambar kecil Gambar kecil memiliki salah satu dari dua gaya: gaya foto atau gaya ikon. Gaya foto berarti gambar harus mengisi ruang dan dapat dipangkas; gaya ikon berarti gambar tidak boleh dipangkas dan mungkin dapat diisi. Variabilitas gambar dapat menghasilkan gambar yang tidak cocok untuk ditampilkan dalam mode standby pada perangkat dengan anti burn-in atau dengan mode standby bit rendah. Saat anti burn-in atau mode standby bit rendah diaktifkan, tampilan jam dapat menggunakan Burn-in protection small image karena cukup aman. Jika tidak, karena sulit bagi tampilan jam untuk menentukan kecocokan, gambar tidak akan ditampilkan.
LARGE_IMAGE Gambar besar Gambar ini diharapkan cukup besar untuk mengisi tampilan jam. Variabilitas gambar dapat menghasilkan gambar yang tidak cocok untuk ditampilkan dalam mode standby pada perangkat dengan anti burn-in atau dengan mode standby bit rendah. Karena sulit bagi tampilan jam untuk menentukan kesesuaian tampilan, tampilan jam tidak akan menampilkan gambar dalam mode standby jika anti burn-in atau standby bit rendah diaktifkan.

Jenis dalam tabel di bawah ini ditujukan bagi data kosong dan dapat dikirim untuk slot detail apa pun. Jenis ini tidak memiliki kolom dan tidak perlu disertakan dalam daftar jenis yang didukung. Jenis ini memungkinkan tampilan jam membedakan tiga kasus penggunaan berikut:

  • Tidak ada penyedia yang dipilih
  • Pengguna telah memilih "kosong" untuk suatu slot
  • Penyedia tidak memiliki data yang akan dikirim

Penyedia tidak boleh mengirimkan TYPE_EMPTY untuk merespons permintaan update. Sebagai gantinya, penyedia harus mengirimkan TYPE_NO_DATA.

Penjelasan tentang jenis detail untuk data "kosong" tersedia dalam tabel berikut:

Jenis detail Deskripsi
TYPE_NOT_CONFIGURED Dikirim oleh sistem ketika salah satu detail diaktifkan tetapi pengguna belum memilih penyedia, dan tidak ada default yang ditetapkan.

Tidak dapat dikirim oleh penyedia.

TYPE_EMPTY Dikirim oleh sistem ketika salah satu detail diaktifkan dan pengguna telah memilih "kosong", bukan penyedia, atau ketika tampilan jam belum memilih penyedia, serta jenis ini, sebagai default.

Tidak dapat dikirim oleh penyedia.

TYPE_NO_DATA Dikirim oleh sistem ketika salah satu detail (yang memiliki penyedia) diaktifkan, untuk mengosongkan detail sebelum data aktual diterima dari penyedia.

Harus dikirim oleh penyedia jika mereka tidak memiliki data aktual yang akan dikirim.

Menggunakan kolom untuk data detail

Kolom objek ComplicationData memiliki fungsi yang berbeda. Contohnya, suatu kolom teks berisi data primer, sementara kolom judul bersifat deskriptif; detail jumlah langkah mungkin memiliki nilai kolom teks "2.543" dengan nilai kolom judul "langkah".

Tabel berikut berisi deskripsi kolom dalam objek ComplicationData. Kolom dapat diisi atau tidak diisi, tergantung pada jenis detailnya.

Kolom Deskripsi
Teks pendek Kolom teks utama untuk detail kecil. Panjang maksimal kolom ini tidak boleh melebihi tujuh karakter (termasuk setiap teks yang bergantung pada waktu). Tampilan jam diharapkan memiliki kemampuan untuk merender setiap string tujuh karakter. Lebar string bervariasi, tergantung pada karakter yang digunakan. Tampilan jam harus menyesuaikan ukuran teks sehingga dapat dimuat dalam detail. Jika melebihi tujuh karakter, teks mungkin akan terpotong.
Ikon Gambar warna tunggal yang merepresentasikan data atau sumber data. Harus dapat diberi warna. Drawable vektor direkomendasikan untuk kolom ini.
Ikon anti burn-in Kolom untuk memungkinkan ikon ditampilkan dalam mode standby pada perangkat yang menggunakan anti burn-in. Dalam mode standby, tampilan jam di perangkat yang menggunakan anti burn-in tidak boleh menampilkan blok piksel solid. Kolom Burn-in protection icon bersifat opsional untuk semua jenis detail yang mencakup kolom icon. Kolom Burn-in protection icon tidak boleh berisi blok piksel solid. Kolom Burn-in protection icon harus disediakan oleh penyedia jika ikon standar mereka tidak cocok untuk anti burn-in. Tampilan jam yang dirender dalam mode standby di perangkat yang mengaktifkan anti burn-in harus menggunakan kolom Burn-in protection icon, jika tersedia, bukan kolom icon.
Gambar kecil anti burn-in Kolom yang memungkinkan gambar ditampilkan dalam mode standby di perangkat yang menggunakan anti burn-in. Dalam mode standby, tampilan jam di perangkat yang menggunakan anti burn-in tidak boleh menampilkan blok piksel solid. Kolom Burn-in protection small image bersifat opsional untuk setiap jenis detail yang mencakup kolom small image. Kolom Burn-in protection small image tidak boleh berisi blok piksel solid. Kolom Burn-in protection small image harus disediakan oleh penyedia jika gambar kecil standar mereka tidak cocok untuk anti burn-in. Tampilan jam yang dirender dalam mode standby di perangkat yang mengaktifkan anti burn-in harus menggunakan kolom Burn-in protection small image, jika tersedia, bukan kolom small image.
Judul pendek Kolom deskriptif untuk detail kecil. Mungkin hanya berguna jika digunakan dengan kolom Short text. Panjang maksimal kolom ini tidak boleh melebihi tujuh karakter (termasuk setiap teks yang bergantung pada waktu). Tampilan jam diharapkan memiliki kemampuan untuk merender setiap string tujuh karakter. Lebar string bervariasi, tergantung pada karakter yang digunakan. Tampilan jam harus menyesuaikan ukuran teks sehingga dapat dimuat dalam detail. Jika melebihi tujuh karakter, teks mungkin akan terpotong.
Teks panjang Kolom data utama untuk detail berbasis teks berukuran besar.
Judul panjang Kolom deskriptif untuk detail berbasis teks berukuran besar. Hanya berguna jika digunakan dengan Teks panjang.
Nilai Representasi numerik (float) dari data. Diharapkan untuk ditunjukkan secara relatif terhadap batas kolom Nilai min dan Nilai maks (tetapi tidak diharuskan berada dalam batas-batas tersebut).
Nilai min Batas bawah untuk rentang dalam Nilai yang harus ditunjukkan. Hanya berguna jika digunakan dengan Nilai dan Nilai maks.
Nilai maks Batas atas untuk rentang dalam nilai yang harus ditunjukkan. Hanya berguna jika digunakan dengan Nilai dan Nilai min.
Gambar kecil Gambar kecil untuk menggambarkan data atau sumber data. Dapat berupa gambar berwarna. Tidak diharapkan untuk mengisi seluruh tampilan jam.
Gambar besar Gambar dengan resolusi yang cukup untuk mengisi tampilan jam. Dapat berupa gambar berwarna.

Menguji jenis detail

Setiap jenis detail memiliki kolom, seperti teks dan ikon. Jika tampilan jam Anda mendukung jenis detail, Anda harus mendukung semua kombinasi kolom yang valid.

Anda dapat menguji bagaimana data detail ditampilkan pada tampilan jam. Secara khusus, paket pengujian memungkinkan Anda menguji bagaimana jenis detail akan ditampilkan. Dengan demikian, Anda tidak perlu menulis kode untuk menguji kombinasi kolom yang valid bagi objek ComplicationData.

Paket pengujian merupakan penyedia data, tersedia sebagai contoh, yang menelusuri seluruh kombinasi kolom yang valid untuk jenis detail yang ditentukan.

Untuk menggunakan paket pengujian:

  1. Instal APK paket pengujian di perangkat atau emulator.
  2. Akses tampilan jam Anda, lalu ketuk ikon setelan utamanya.
  3. Gunakan UI setelan untuk memilih paket pengujian: WearComplication-ProviderTestSuite
  4. Pilih jenis data detail yang akan diuji.
  5. Ketuk detail Anda untuk melihat variasi jenis data.
  6. Ketuk detail berulang kali untuk memastikan bahwa semua kombinasi kolom yang relevan ditampilkan dengan benar.

Contohnya, jika detail mendukung teks pendek, ketuk detail Anda guna melihat semua kombinasi kolom utama untuk teks pendek.