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 a previsiones por hora y por día.

Para acceder al clima, se usan expresiones. Por ejemplo, para mostrar el estado las condiciones climáticas en un elemento <Text>, usa una expresión similar a lo 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 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], lo 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 la que los datos están inactivos y fallan los intentos de actualizarlos. En esos casos, se puede mostrar el clima disponible, junto con un indicador para indicar que hay se produjo un error al recuperar los datos nuevos.

Actualidad de los datos

Se puede acceder a la marca de tiempo de los datos disponibles [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 legible por humanos, como se demuestra en el ejemplo del clima.

Condiciones climáticas

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

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

Otras métricas

El Formato de Caras de Relojes proporciona un rango de métricas adicionales, como [WEATHER.TEMPERATURE] y [WEATHER.UV_INDEX]. Para ver todos los detalles de las métricas disponibles, como las unidades y los tipos de datos, consulta el 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íficos 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 de anticipación y los datos diarios hasta 5 días más adelante. Sin embargo, la cara de reloj siempre debe comprobar la disponibilidad de datos de previsión. Es posible que haya un intervalo diferente de horas o días disponible en en distintos momentos o dispositivos. Por ejemplo, para verificar si la previsión los datos están disponibles durante 1 hora a partir de ahora, 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, como las unidades y los tipos de datos, consulta el 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 para hacer lo siguiente: determinan una ubicación para el pronóstico del tiempo y, en su lugar, se basan en la ubicación desde un dispositivo de mano conectado o desde 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 cómo acceder a datos meteorológicos y renderizarlos, consulta la Muestra de GitHub.