Data cuaca dalam Format Tampilan Jam

Sejak versi 2, Format Tampilan Jam menyertakan dukungan untuk data cuaca. Data ini mencakup berbagai metrik dan jangka waktu, dari kondisi saat ini hingga prakiraan cuaca per jam dan harian.

Cuaca diakses menggunakan ekspresi. Misalnya, untuk menampilkan kondisi cuaca dalam elemen <Text>, gunakan ekspresi yang mirip dengan hal berikut:

<Text>
  <Font family="SYNC_TO_DEVICE" size="32">
    <Template>Today's weather: %s
        <Parameter expression="[WEATHER.CONDITION_NAME]"/>
    </Template>
  </Font>
</Text>

Ketersediaan

Tampilan jam harus selalu memeriksa nilai [WEATHER.IS_AVAILABLE] sebelum mengakses anggota lain dari objek [WEATHER.*]:

<Condition>
  <Expressions>
    <Expression name="is_weather_available">[WEATHER.IS_AVAILABLE]</Expression>
  </Expressions>
  <Compare expression="is_weather_available">
    <!-- Weather is available, so show the weather data. -->
  </Compare>
  <Default>
    <!-- Weather isn't available, so show an appropriate message. -->
  </Default>
</Condition>

Selain itu, tampilan jam harus memeriksa [WEATHER.IS_ERROR], yang menunjukkan terjadi error saat memuat data cuaca.

Perhatikan bahwa [WEATHER.IS_AVAILABLE] dan [WEATHER.IS_ERROR] dapat bernilai benar (true), di mana data sudah basi dan upaya untuk menyegarkan data gagal. Dalam kasus tersebut, cuaca yang tersedia dapat ditampilkan, beserta indikator untuk menunjukkan bahwa ada terjadi error saat mengambil data baru.

Keaktualan data

Stempel waktu dari data yang tersedia dapat diakses menggunakan [WEATHER.LAST_UPDATED] yang merupakan stempel waktu Unix epoch dalam milidetik.

Nilai ini dapat diformat menggunakan metode icuText(,) untuk mendapatkan dan dapat dibaca manusia, seperti yang ditunjukkan dalam contoh cuaca.

Kondisi cuaca

Kondisi saat ini tersedia di [WEATHER.CONDITION], dengan versi yang dapat dibaca manusia dalam [WEATHER.CONDITION_NAME].

Nilai untuk [WEATHER.CONDITION] dapat dilihat dalam sumber data. Sebagai contoh, 4 mewakili HEAVY_RAIN.

Metrik lainnya

Format Tampilan Jam menyediakan berbagai metrik tambahan, seperti [WEATHER.TEMPERATURE] dan [WEATHER.UV_INDEX]. Untuk detail selengkapnya tentang metrik yang tersedia, termasuk unit dan jenis data, kunjungi sumber data.

Prakiraan cuaca per jam dan harian

Anda dapat mengakses kondisi perkiraan untuk jam atau hari tertentu pada masa mendatang sebagai berikut:

  • [WEATHER.HOURS.1.CONDITION] - kondisi perkiraan 1 jam dari sekarang.
  • [WEATHER.DAYS.2.CONDITION] - kondisi perkiraan 2 hari dari sekarang.

Data per jam dapat tersedia hingga 8 jam lebih awal, dan data harian hingga 5 hari di depan. Namun, tampilan jam harus selalu memeriksa ketersediaan data prakiraan cuaca. Rentang jam atau hari yang berbeda mungkin tersedia di waktu atau perangkat yang berbeda. Misalnya, untuk memeriksa apakah perkiraan data tersedia selama 1 jam dari sekarang, gunakan [WEATHER.HOURS.1.IS_AVAILABLE].

Prakiraan cuaca harian dan per jam juga menampilkan berbagai metrik, seperti [WEATHER.HOURS.<N>.TEMPERATURE] dan [WEATHER.DAYS.<N>.CHANCE_OF_PRECIPITATION]. Untuk detail selengkapnya tentang metrik yang tersedia, termasuk unit dan jenis data, kunjungi sumber data.

Menguji dengan data cuaca

Untuk mendapatkan data cuaca, perangkat Wear OS harus mengetahui lokasi perangkat.

Untuk menghemat daya, jam tidak menggunakan sensor GPS bawaan untuk menentukan lokasi untuk prakiraan cuaca, dan sebagai gantinya bergantung pada lokasi dari perangkat genggam yang terhubung atau dari jaringan yang tersedia.

Agar data lokasi tersedia untuk pengujian, lakukan salah satu hal berikut:

adb unroot
adb shell cmd location set-location-enabled true
adb root
adb shell appops set 0 android:mock_location allow
adb shell cmd location providers add-test-provider gps
adb shell cmd location providers set-test-provider-enabled gps true
adb shell cmd location providers set-test-provider-location gps --location 37.773972,-122.431297

Detail lebih lanjut

Untuk contoh lengkap tentang mengakses dan merender data cuaca, lihat Contoh GitHub.