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.
Polecane dla Ciebie
- Uwaga: tekst linku jest wyświetlany, gdy język JavaScript jest wyłączony.
- Zmienianie zachowania ostrości
- Efekty uboczne w Compose
- Znaczenie symboli AGSL