Dane pogodowe w formacie tarczy zegarka

Od wersji 2 format tarczy zegarka obsługuje dane o pogodzie. Dane te obejmują szereg wskaźników i przedziałów czasowych – od bieżących 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>

Warto też sprawdzić [WEATHER.IS_ERROR], która wskazuje na błąd podczas wczytywania danych o pogodzie.

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

Aktualność danych

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

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

Warunki pogodowe

Bieżące warunki pogodowe są dostępne w [WEATHER.CONDITION], a ich czytelna dla człowieka wersja w [WEATHER.CONDITION_NAME].

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

Inne wskaźniki

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

Prognozy godzinowe i dzienne

Dostęp do prognozowanych warunków pogodowych na konkretną godzinę lub dzień w przyszłości możesz uzyskać w ten sposób:

  • [WEATHER.HOURS.1.CONDITION] – prognozowane warunki pogodowe za 1 godzinę.
  • [WEATHER.DAYS.2.CONDITION] – prognozowane warunki pogodowe za 2 dni.

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 prognozowanych. W różnych momentach lub na różnych urządzeniach może być dostępny inny zakres godzin lub dni. Aby na przykład sprawdzić, czy dane prognozowane są dostępne na 1 godzinę od teraz, użyj [WEATHER.HOURS.1.IS_AVAILABLE].

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

Testowanie z danymi o pogodzie

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.
  • Zasymuluj 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

Dodatkowe informacje

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