Datos meteorológicos en el Formato de Caras de Relojes

A partir de la versión 2, el Formato de Caras de Relojes incluye compatibilidad con datos meteorológicos. Estos datos abarcan una variedad de métricas y períodos, desde las condiciones actuales hasta las previsiones diarias y por hora.

Para acceder al clima, se usan expresiones. Por ejemplo, para mostrar las condiciones climáticas actuales en un elemento <Text>, usa una expresión similar a la siguiente:

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

Disponibilidad

Las caras de reloj siempre deben verificar el valor [WEATHER.IS_AVAILABLE] antes de acceder a otros miembros del objeto [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>

Además, la cara de reloj debe marcar [WEATHER.IS_ERROR], que indica un error en la carga de datos meteorológicos.

Ten en cuenta que [WEATHER.IS_AVAILABLE] y [WEATHER.IS_ERROR] pueden ser verdaderos, en los que los datos están inactivos y los intentos de actualizarlos fallaron. En esos casos, se puede mostrar el clima disponible, junto con un indicador que indique que hubo un error al recuperar datos nuevos.

Actualidad de los datos

Se puede acceder a la marca de tiempo de los datos disponibles con [WEATHER.LAST_UPDATED], que es una marca de tiempo Unix epoch en milisegundos.

Se puede formatear este valor con el método icuText(,) para obtener una representación legible por humanos, como se demuestra en la muestra del clima.

Condiciones climáticas

Las condiciones actuales están disponibles en [WEATHER.CONDITION], con una versión legible por humanos en [WEATHER.CONDITION_NAME].

Los valores de [WEATHER.CONDITION] se pueden ver en las fuentes de datos. Por ejemplo, 4 representa HEAVY_RAIN.

Otras métricas

El Formato de Caras de Relojes proporciona una variedad de métricas adicionales, como [WEATHER.TEMPERATURE] y [WEATHER.UV_INDEX]. Para obtener todos los detalles de las métricas disponibles, incluidas las unidades y los tipos de datos, visita la página de referencia de fuentes de datos.

Pronósticos por hora y por día

Puedes acceder a las condiciones de previsión de una hora o un día específico en el futuro de la siguiente manera:

  • [WEATHER.HOURS.1.CONDITION]: Indica las condiciones del pronóstico en 1 hora a partir de ahora.
  • [WEATHER.DAYS.2.CONDITION]: Indica las condiciones de previsión en 2 días a partir de ahora.

Los datos por hora pueden estar disponibles hasta 8 horas antes y los datos diarios hasta 5 días antes. Sin embargo, la cara de reloj siempre debe verificar la disponibilidad de los datos de previsión. Es posible que haya un rango diferente de horas o días disponible en horarios o dispositivos diferentes. Por ejemplo, para verificar si los datos de previsión están disponibles dentro de 1 hora, usa [WEATHER.HOURS.1.IS_AVAILABLE].

Las previsiones diarias y por hora también incluyen una variedad de métricas, como [WEATHER.HOURS.<N>.TEMPERATURE] y [WEATHER.DAYS.<N>.CHANCE_OF_PRECIPITATION]. Para obtener todos los detalles de las métricas disponibles, incluidas las unidades y los tipos de datos, visita la página de referencia de fuentes de datos.

Realiza pruebas con datos meteorológicos

Para obtener datos del clima, el dispositivo Wear OS debe conocer su ubicación.

Para ahorrar energía, el reloj no usa el sensor GPS integrado a fin de determinar una ubicación para el pronóstico del tiempo, sino que depende de la ubicación de un dispositivo portátil conectado o de las redes disponibles.

Si deseas que los datos de ubicación estén disponibles para pruebas, realiza una de las siguientes acciones:

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

Más detalles

Para obtener un ejemplo completo de acceso y renderización a datos meteorológicos, consulta la muestra de GitHub.