Dane pogodowe w formacie tarczy zegarka

Od wersji 2 format tarczy zegarka obsługuje dane pogodowe. Dane te obejmują różne dane i ramy czasowe, od aktualnych warunków pogodowych po prognozy godzinowe i dzienne.

Dostęp do informacji o pogodzie uzyskuje się za pomocą wyrażeń. Aby na przykład wyświetlić bieżące warunki pogodowe w elemencie <Text>, użyj wyrażenia podobnego do tego:

<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>

Dostępność

Zanim uzyskasz dostęp do innych elementów obiektu [WEATHER.*], sprawdź wartość [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>

Sprawdź też, czy nie ma symbolu [WEATHER.IS_ERROR], który oznacza błąd wczytywania danych pogodowych.

Pamiętaj, że wartości [WEATHER.IS_AVAILABLE][WEATHER.IS_ERROR] mogą być jednocześnie prawdziwe, gdy dane są nieaktualne, a próby ich odświeżenia nie powiodły się. W takich przypadkach mogą być wyświetlane dostępne informacje o pogodzie wraz ze wskaźnikiem informującym o błędzie podczas pobierania nowych danych.

Częstotliwość aktualizacji danych

Sygnaturę czasową dostępnych danych można uzyskać za pomocą funkcji [WEATHER.LAST_UPDATED], która jest sygnaturą czasową epoki uniksowej w milisekundach.

Tę wartość można sformatować za pomocą metody icuText(,), aby uzyskać czytelną reprezentację, jak pokazano w przykładzie dotyczącym pogody.

Warunki pogodowe

Aktualne warunki są dostępne w [WEATHER.CONDITION], a wersja w języku zrozumiałym dla człowieka jest dostępna w [WEATHER.CONDITION_NAME].

Wartości parametru [WEATHER.CONDITION] można znaleźć w źródłach danych. Na przykład 4 oznacza HEAVY_RAIN.

Inne dane

Format tarczy zegarka udostępnia szereg dodatkowych danych, takich jak [WEATHER.TEMPERATURE][WEATHER.UV_INDEX]. Szczegółowe informacje o dostępnych danych, w tym jednostkach i typach danych, znajdziesz na stronie referencyjnej źródeł danych.

Prognozy godzinowe i dzienne

Prognozę pogody na konkretną godzinę lub dzień w przyszłości możesz sprawdzić w ten sposób:

  • [WEATHER.HOURS.1.CONDITION] – prognoza warunków za godzinę.
  • [WEATHER.DAYS.2.CONDITION] – prognoza na 2 dni od teraz.

Dane godzinowe mogą być dostępne z wyprzedzeniem do 8 godzin, a dane dzienne – do 5 dni. Tarcza zegarka powinna jednak zawsze sprawdzać dostępność danych prognozy. W różnych porach dnia lub na różnych urządzeniach może być dostępny inny zakres godzin lub dni. Aby na przykład sprawdzić, czy dane prognozy są dostępne za godzinę, użyj [WEATHER.HOURS.1.IS_AVAILABLE].

Prognozy dzienne i godzinowe zawierają też szereg danych, takich jak [WEATHER.HOURS.<N>.TEMPERATURE] i [WEATHER.DAYS.<N>.CHANCE_OF_PRECIPITATION]. Szczegółowe informacje o dostępnych danych, w tym jednostkach i typach danych, znajdziesz na stronie referencyjnej źródeł danych.

Testowanie za pomocą danych pogodowych

Aby uzyskać dane o pogodzie, urządzenie z Wear OS musi znać swoją lokalizację.

Aby oszczędzać energię, zegarek nie używa wbudowanego czujnika GPS do określania lokalizacji na potrzeby prognozy pogody, ale korzysta z lokalizacji z połączonego urządzenia przenośnego lub z dostępnych sieci.

Aby udostępnić dane o lokalizacji na potrzeby testowania, wykonaj jedną z tych czynności:

  • Sparuj emulator Wear OS z fizycznym telefonem lub emulatorem telefonu.
  • Symuluj lokalizację za pomocą tego polecenia 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

Więcej informacji

Pełny przykład dostępu do danych pogodowych i ich renderowania znajdziesz w przykładzie w GitHubie.