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:
- Parear o emulador do Wear OS com um smartphone físico ou emulador.
- Simule a localização usando o seguinte comando 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
Mais detalhes
Para um exemplo completo de acesso e renderização de dados meteorológicos, consulte o exemplo do GitHub (link em inglês).
Recomendados para você
- Observação: o texto do link aparece quando o JavaScript está desativado.
- Mudar o comportamento de foco
- Efeitos colaterais no Compose
- Referência rápida da AGSL