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, mulai dari kondisi saat ini hingga perkiraan per jam dan harian.

Cuaca diakses menggunakan ekspresi. Misalnya, untuk menampilkan kondisi cuaca saat ini dalam elemen <Text>, gunakan ekspresi yang mirip dengan 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 error dalam memuat data cuaca.

Perhatikan bahwa [WEATHER.IS_AVAILABLE] dan [WEATHER.IS_ERROR] dapat bernilai benar (true) jika data sudah tidak berlaku dan upaya memuat ulang data gagal. Dalam kasus tersebut, cuaca yang tersedia dapat ditampilkan, beserta indikator untuk menunjukkan bahwa terjadi error saat mengambil data baru.

Keaktualan data

Stempel waktu 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 representasi yang dapat dibaca manusia, seperti yang ditunjukkan dalam contoh cuaca.

Kondisi cuaca

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

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

Metrik lainnya

Format Tampilan Jam menyediakan berbagai metrik tambahan, seperti [WEATHER.TEMPERATURE] dan [WEATHER.UV_INDEX]. Untuk mengetahui detail selengkapnya tentang metrik yang tersedia, termasuk unit dan jenis data, buka halaman referensi 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 ke depan, dan data harian hingga 5 hari ke depan. Namun, tampilan jam harus selalu memeriksa ketersediaan data perkiraan. Rentang jam atau hari yang berbeda mungkin tersedia pada waktu yang berbeda, atau perangkat yang berbeda. Misalnya, untuk memeriksa apakah data perkiraan tersedia 1 jam dari sekarang, gunakan [WEATHER.HOURS.1.IS_AVAILABLE].

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

Menguji dengan data cuaca

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

Untuk menghemat daya, smartwatch tidak menggunakan sensor GPS bawaan untuk menentukan lokasi perkiraan cuaca, melainkan mengandalkan 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 cara mengakses dan merender data cuaca, lihat contoh GitHub.