Seit Version 2 unterstützt das Watch Face-Format Wetterdaten. Diese Daten umfassen eine Reihe von Messwerten und Zeiträumen, von den aktuellen Bedingungen bis hin zu stündlichen und täglichen Vorhersagen.
Auf das Wetter wird über Ausdrücke zugegriffen. Wenn Sie beispielsweise die aktuellen Wetterbedingungen in einem <Text>-Element anzeigen möchten, verwenden Sie einen Ausdruck wie den folgenden:
<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>
Verfügbarkeit
Bevor Sie auf andere Elemente des [WEATHER.*]-Objekts zugreifen, prüfen Sie den [WEATHER.IS_AVAILABLE]-Wert:
<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>
Achten Sie auch auf [WEATHER.IS_ERROR], das auf einen Fehler beim Laden von Wetterdaten hinweist.
[WEATHER.IS_AVAILABLE] und [WEATHER.IS_ERROR] können beide zutreffen, wenn die Daten veraltet sind und Versuche, sie zu aktualisieren, fehlgeschlagen sind. In solchen Fällen können die verfügbaren Wetterinformationen zusammen mit einem Hinweis angezeigt werden, dass beim Abrufen neuer Daten ein Fehler aufgetreten ist.
Datenaktualität
Der Zeitstempel der verfügbaren Daten kann über [WEATHER.LAST_UPDATED] abgerufen werden. Das ist ein Unix-Epochenzeitstempel in Millisekunden.
Dieser Wert kann mit der Methode icuText(,) formatiert werden, um eine für Menschen lesbare Darstellung zu erhalten, wie im Wetterbeispiel gezeigt.
Wetter
Die aktuellen Bedingungen sind in [WEATHER.CONDITION] verfügbar. Eine für Menschen lesbare Version finden Sie in [WEATHER.CONDITION_NAME].
Die Werte für [WEATHER.CONDITION] finden Sie in Datenquellen. Beispiel: 4 steht für HEAVY_RAIN.
Weitere Messwerte
Das Zifferblattformat bietet eine Reihe zusätzlicher Messwerte wie [WEATHER.TEMPERATURE] und [WEATHER.UV_INDEX]. Eine vollständige Liste der verfügbaren Messwerte, einschließlich Einheiten und Datentypen, finden Sie auf der Referenzseite Datenquellen.
Stündliche und tägliche Vorhersagen
So greifen Sie auf Vorhersagebedingungen für eine bestimmte Stunde oder einen bestimmten Tag in der Zukunft zu:
[WEATHER.HOURS.1.CONDITION]– die vorhergesagten Bedingungen in einer Stunde.[WEATHER.DAYS.2.CONDITION]: Die vorhergesagten Bedingungen in 2 Tagen.
Stündliche Daten können bis zu 8 Stunden im Voraus verfügbar sein, tägliche Daten bis zu 5 Tage im Voraus. Das Zifferblatt sollte jedoch immer prüfen, ob Vorhersagedaten verfügbar sind. Zu unterschiedlichen Zeiten oder auf unterschiedlichen Geräten ist möglicherweise ein anderer Zeitraum verfügbar. Wenn Sie beispielsweise prüfen möchten, ob Vorhersagedaten für eine Stunde ab jetzt verfügbar sind, verwenden Sie [WEATHER.HOURS.1.IS_AVAILABLE].
Tages- und Stundenprognosen enthalten auch eine Reihe von Messwerten wie [WEATHER.HOURS.<N>.TEMPERATURE] und [WEATHER.DAYS.<N>.CHANCE_OF_PRECIPITATION]. Eine vollständige Liste der verfügbaren Messwerte, einschließlich Einheiten und Datentypen, finden Sie auf der Referenzseite Datenquellen.
Mit Wetterdaten testen
Damit Wetterdaten abgerufen werden können, muss das Wear OS-Gerät den Standort des Geräts kennen.
Um Strom zu sparen, verwendet die Smartwatch nicht den integrierten GPS-Sensor, um einen Standort für die Wettervorhersage zu ermitteln. Stattdessen wird der Standort von einem verbundenen Mobilgerät oder von verfügbaren Netzwerken verwendet.
Damit Standortdaten für Tests verfügbar sind, haben Sie folgende Möglichkeiten:
- Koppeln Sie Ihren Wear OS-Emulator mit einem physischen Smartphone oder einem Emulator-Smartphone.
- Simulieren Sie den Standort mit dem folgenden ADB-Befehl:
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
Weitere Informationen
Ein vollständiges Beispiel für den Zugriff auf Wetterdaten und deren Darstellung finden Sie im GitHub-Beispiel.
Empfehlungen für Sie
- Hinweis: Linktext wird angezeigt, wenn JavaScript deaktiviert ist.
- Fokusverhalten ändern
- Nebeneffekte in Compose
- AGSL-Kurzreferenz