Wetterdaten im Zifferblatt-Format

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:

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.