Dados meteorológicos no Formato do mostrador do relógio

Desde a versão 2, o Formato do mostrador do relógio inclui suporte para dados meteorológicos. Esses dados abrangem várias métricas e períodos, desde as condições atuais até previsões diárias e por hora.

O clima é acessado usando expressões. Por exemplo, para mostrar as condições climáticas atuais em um elemento <Text>, use uma expressão semelhante a esta:

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

Disponibilidade

Os mostradores de relógio precisam sempre verificar o valor [WEATHER.IS_AVAILABLE] antes de acessar outros membros do 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>

Além disso, o mostrador do relógio precisa conferir [WEATHER.IS_ERROR], que indica um erro no carregamento de dados meteorológicos.

Observe que [WEATHER.IS_AVAILABLE] e [WEATHER.IS_ERROR] podem ser verdadeiros, quando os dados estão desatualizados e há falha na tentativa de atualizá-los. Nesses casos, o clima disponível pode ser mostrado com um indicador para mostrar que houve um erro ao buscar novos dados.

Atualidade dos dados

O carimbo de data/hora dos dados disponíveis pode ser acessado usando [WEATHER.LAST_UPDATED], que é um carimbo de data/hora da época Unix em milissegundos.

Esse valor pode ser formatado usando o método icuText(,) para ter uma representação legível por humanos, conforme demonstrado na amostra de clima.

Condições meteorológicas

As condições atuais estão disponíveis em [WEATHER.CONDITION], com uma versão legível em [WEATHER.CONDITION_NAME].

Os valores de [WEATHER.CONDITION] podem ser vistos nas fontes de dados. Por exemplo, 4 representa HEAVY_RAIN.

Outras métricas

O Formato do mostrador do relógio oferece uma variedade de outras métricas, como [WEATHER.TEMPERATURE] e [WEATHER.UV_INDEX]. Para ver todos os detalhes das métricas disponíveis, incluindo unidades e tipos de dados, acesse a página de referência de fontes de dados.

Previsões diárias e por hora

É possível acessar as condições de previsão para uma hora ou dia específico no futuro da seguinte maneira:

  • [WEATHER.HOURS.1.CONDITION]: as condições da previsão para daqui a uma hora.
  • [WEATHER.DAYS.2.CONDITION]: as condições da previsão para daqui a dois dias.

Os dados por hora podem estar disponíveis com até oito horas de antecedência e dados diários com até cinco dias. No entanto, o mostrador do relógio precisa sempre verificar a disponibilidade de dados de previsão. Um intervalo diferente de horas ou dias pode estar disponível em horários ou dispositivos diferentes. Por exemplo, para verificar se os dados de previsão estão disponíveis para uma hora a partir de agora, use [WEATHER.HOURS.1.IS_AVAILABLE].

As previsões diárias e por hora também apresentam várias métricas, como [WEATHER.HOURS.<N>.TEMPERATURE] e [WEATHER.DAYS.<N>.CHANCE_OF_PRECIPITATION]. Para ver todos os detalhes das métricas disponíveis, incluindo unidades e tipos de dados, acesse a página de referência de fontes de dados.

Como fazer testes com dados meteorológicos

Para acessar dados meteorológicos, o dispositivo Wear OS precisa estar ciente da localização dele.

Para economizar bateria, o relógio não usa o sensor de GPS integrado para determinar um local para a previsão do tempo. Em vez disso, ele depende da localização de um dispositivo portátil conectado ou das redes disponíveis.

Para disponibilizar dados de local para teste, siga um destes procedimentos:

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

Mais detalhes

Para um exemplo completo de acesso e renderização de dados meteorológicos, consulte o exemplo do GitHub (link em inglês).