Desde 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 los pronósticos por hora y por día.
Se accede al clima con expresiones. Por ejemplo, para mostrar las condiciones climáticas actuales en un elemento <Text>, usa una expresión similar a la siguiente:
<PartText x="100" y="100" width="200" height="50"> <Text> <Font family="SYNC_TO_DEVICE" size="16"> <Template><![CDATA[Today's weather: %s]]> <Parameter expression="[WEATHER.CONDITION_NAME]"/> </Template> </Font> </Text> </PartText>
Disponibilidad
Antes de acceder a otros miembros del objeto [WEATHER.*], verifica el valor de [WEATHER.IS_AVAILABLE]:
<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>
También debes verificar si hay [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 cuyo caso los datos están desactualizados y fallaron los intentos de actualizarlos. En esos casos, se puede mostrar el clima disponible junto con un indicador que muestre 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 de época de Unix en milisegundos.
Este valor se puede formatear con el método icuText(,) para obtener una representación legible, como se muestra en el ejemplo del clima.
Condiciones climáticas
Las condiciones actuales están disponibles en [WEATHER.CONDITION], con una versión legible para 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 las fuentes de datos.
Pronósticos por hora y diarios
Puedes acceder a las condiciones del pronóstico para una hora o un día específicos en el futuro de la siguiente manera:
[WEATHER.HOURS.1.CONDITION]: Son las condiciones del pronóstico dentro de 1 hora.[WEATHER.DAYS.2.CONDITION]: Son las condiciones del pronóstico para dentro de 2 días.
Los datos por hora pueden estar disponibles hasta 8 horas antes, y los datos diarios, hasta 5 días antes. Sin embargo, la cara del reloj siempre debe verificar la disponibilidad de los datos del pronóstico. Es posible que haya diferentes rangos de horas o días disponibles en diferentes momentos o en diferentes dispositivos. Por ejemplo, para verificar si los datos de previsión están disponibles para dentro de 1 hora, usa [WEATHER.HOURS.1.IS_AVAILABLE].
Los pronósticos diarios 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 las fuentes de datos.
Cómo realizar pruebas con datos meteorológicos
Para obtener datos del clima, el dispositivo Wear OS debe conocer su ubicación.
Para ahorrar batería, el reloj no usa el sensor GPS integrado para determinar una ubicación para el pronóstico del clima, sino que se basa en la ubicación de un dispositivo portátil conectado o de las redes disponibles.
Para que los datos de ubicación estén disponibles para las pruebas, realiza una de las siguientes acciones:
- Vincula tu emulador de Wear OS con un teléfono físico o un emulador.
- Simula la ubicación con el siguiente comando de adb:
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
Si quieres ver un ejemplo completo de cómo acceder a los datos meteorológicos y renderizarlos, consulta la muestra de GitHub.
Recomendaciones para ti
- Nota: El texto del vínculo se muestra cuando JavaScript está desactivado
- Cómo cambiar el comportamiento del enfoque
- Efectos secundarios en Compose
- Referencia rápida de AGSL