Wetterdaten im Zifferblatt-Format

Seit Version 2 unterstützt das Watch Face-Format auch Wetterdaten. Diese Daten decken eine Reihe von Messwerten und Zeiträumen ab, von den aktuellen Bedingungen bis hin zu stündlichen und täglichen Prognosen.

Auf das Wetter wird mithilfe von Ausdrücken zugegriffen. Wenn Sie beispielsweise die aktuellen Wetterbedingungen in einem <Text>-Element anzeigen möchten, verwenden Sie einen Ausdruck ähnlich dem folgenden:

<Text>
  <Font family="SYNC_TO_DEVICE" size="32">
    <Template>Today's weather: %s
        <Parameter expression="[WEATHER.CONDITION_NAME]"/>
    </Template>
  </Font>
</Text>

Verfügbarkeit

Zifferblätter sollten immer den Wert [WEATHER.IS_AVAILABLE] prüfen, bevor auf andere Elemente des [WEATHER.*]-Objekts zugegriffen wird:

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

Außerdem sollte das Zifferblatt [WEATHER.IS_ERROR] prüfen, was auf einen Fehler beim Laden der Wetterdaten hinweist.

[WEATHER.IS_AVAILABLE] und [WEATHER.IS_ERROR] können beide „true“ sein, wenn die Daten veraltet sind und der Versuch, sie zu aktualisieren, fehlgeschlagen ist. In solchen Fällen kann das verfügbare Wetter zusammen mit einem Indikator angezeigt werden, der darauf hinweist, dass beim Abrufen neuer Daten ein Fehler aufgetreten ist.

Aktualität der Daten

Auf den Zeitstempel der verfügbaren Daten kann mit [WEATHER.LAST_UPDATED] zugegriffen werden. Dabei handelt es sich um einen Unix epoch-Zeitstempel 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 menschenlesbare Version ist in [WEATHER.CONDITION_NAME] verfügbar.

Die Werte für [WEATHER.CONDITION] finden Sie in den Datenquellen. 4 steht beispielsweise für HEAVY_RAIN.

Weitere Messwerte

Das Watch Face-Format bietet eine Reihe zusätzlicher Messwerte wie [WEATHER.TEMPERATURE] und [WEATHER.UV_INDEX]. Ausführliche Informationen zu den verfügbaren Messwerten, einschließlich Einheiten und Datentypen, finden Sie auf der Referenzseite für Datenquellen.

Stündliche und tägliche Prognosen

So greifen Sie auf Prognosebedingungen für eine bestimmte Stunde oder einen bestimmten Tag in der Zukunft zu:

  • [WEATHER.HOURS.1.CONDITION]: Die Prognosebedingungen in einer Stunde ab jetzt.
  • [WEATHER.DAYS.2.CONDITION]: Die Prognosebedingungen in zwei Tagen.

Stündliche Daten können bis zu 8 Stunden im Voraus und tägliche Daten bis zu 5 Tage im Voraus verfügbar sein. Das Zifferblatt sollte jedoch immer prüfen, ob Prognosedaten verfügbar sind. Zu unterschiedlichen Zeiten oder auf verschiedenen Geräten kann ein anderer Zeitraum von Stunden oder Tagen verfügbar sein. Mit [WEATHER.HOURS.1.IS_AVAILABLE] können Sie beispielsweise prüfen, ob Prognosedaten in einer Stunde ab jetzt verfügbar sind.

Tägliche und stündliche Prognosen umfassen auch eine Reihe von Messwerten wie [WEATHER.HOURS.<N>.TEMPERATURE] und [WEATHER.DAYS.<N>.CHANCE_OF_PRECIPITATION]. Ausführliche Informationen zu den verfügbaren Messwerten, einschließlich Einheiten und Datentypen, finden Sie auf der Referenzseite für Datenquellen.

Mit Wetterdaten testen

Um Wetterdaten abrufen zu können, muss das Wear OS-Gerät den Gerätestandort kennen.

Um Energie zu sparen, verwendet die Uhr nicht den integrierten GPS-Sensor, um einen Standort für die Wettervorhersage zu bestimmen, sondern stützt sich stattdessen auf den Standort eines verbundenen Handheld-Geräts oder von verfügbaren Netzwerken.

Führen Sie einen der folgenden Schritte aus, um Standortdaten zum Testen zur Verfügung zu stellen:

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 Details

Ein vollständiges Beispiel für den Zugriff auf und das Rendern von Wetterdaten finden Sie im GitHub-Beispiel.