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 por hora e diárias.
A previsão do tempo é acessada usando expressões. Por exemplo, para mostrar as condições
climáticas atuais em um elemento <Text>, use uma expressão semelhante a
esta:
<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>
Disponibilidade
Antes de acessar outros membros do objeto [WEATHER.*], verifique o 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>
Verifique também se há [WEATHER.IS_ERROR], que indica um erro no carregamento de dados meteorológicos.
[WEATHER.IS_AVAILABLE] e [WEATHER.IS_ERROR] podem ser verdadeiros quando os dados estão desatualizados e as tentativas de atualização falharam. Nesses casos, o clima disponível pode ser mostrado, junto com um indicador de que houve um erro ao buscar novos dados.
Atualização de 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 uma representação legível, 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 por humanos 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 várias métricas adicionais, como [WEATHER.TEMPERATURE] e [WEATHER.UV_INDEX]. Para conferir 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 de hora em hora e diárias
Para acessar as condições de previsão para uma hora ou dia específico no futuro, faça o seguinte:
[WEATHER.HOURS.1.CONDITION]: as condições previstas para daqui a uma hora.[WEATHER.DAYS.2.CONDITION]: as condições previstas para daqui a dois dias.
Os dados por hora podem estar disponíveis até 8 horas antes, e os dados diários até 5 dias antes. No entanto, o mostrador do relógio sempre precisa 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 uma variedade de métricas, como
[WEATHER.HOURS.<N>.TEMPERATURE] e
[WEATHER.DAYS.<N>.CHANCE_OF_PRECIPITATION]. Para conferir 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 receber dados meteorológicos, o dispositivo Wear OS precisa saber a 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. Em vez disso, ele depende da localização de um dispositivo portátil conectado ou de redes disponíveis.
Para disponibilizar dados de local para teste, faça o seguinte:
- Pareie o emulador do Wear OS com um smartphone físico ou emulador.
- Simule a localização com 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 a amostra 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