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 uma variedade de métricas e períodos, a partir das condições atuais até previsões diárias e por hora.

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

<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 marcar [WEATHER.IS_ERROR], que indica um erro ao carregar os dados meteorológicos.

Observe que [WEATHER.IS_AVAILABLE] e [WEATHER.IS_ERROR] podem ser verdadeiros, em que os dados estão desatualizados e tentam atualizá-los falhar. Nesses casos, o clima disponível pode ser mostrado, junto com um indicador para mostrar que há ocorreu 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 obter um representação legível por humanos, como demonstrado na amostra meteorológica

Condições meteorológicas

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

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

Outras métricas

O Formato do mostrador do relógio oferece uma gama de métricas adicionais, como [WEATHER.TEMPERATURE] e [WEATHER.UV_INDEX]. Para mais detalhes de métricas disponíveis, incluindo unidades e tipos de dados, acesse o 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 forma:

  • [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 os dados diários de até cinco dias à frente. No entanto, o mostrador do relógio deve sempre verificar a disponibilidade dados de previsão. Um intervalo diferente de horas ou dias pode estar disponível em momentos ou dispositivos diferentes. Por exemplo, para verificar se a previsão os dados estiverem disponíveis por 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 mais detalhes de métricas disponíveis, incluindo unidades e tipos de dados, acesse o 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 energia, o relógio não usa o sensor de GPS integrado para determinar um local para a previsão do tempo e, em vez disso, depender da localização em um dispositivo portátil conectado ou em 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 obter um exemplo completo de como acessar e processar dados meteorológicos, consulte o Exemplo do GitHub.