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 auf stündliche und tägliche Prognosen.

Auf das Wetter wird mithilfe von Ausdrücken zugegriffen. Um beispielsweise die aktuellen für Wetterbedingungen in einem <Text>-Element verwenden, verwenden Sie einen Ausdruck ähnlich dem Folgendes:

<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 [WEATHER.IS_AVAILABLE]-Wert prüfen, bevor Zugriff auf andere Mitglieder des [WEATHER.*]-Objekts:

<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, wodurch angegeben wird, Fehler beim Laden der Wetterdaten.

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

Aktualität der Daten

Der Zeitstempel der verfügbaren Daten kann über [WEATHER.LAST_UPDATED]: Dies ist ein Unix epoch-Zeitstempel in Millisekunden.

Dieser Wert kann mit der Methode icuText(,) formatiert werden, um einen Wert für für Menschen lesbare Darstellung, wie im Wetterbeispiel gezeigt.

Wetter

Die aktuellen Bedingungen sind in [WEATHER.CONDITION] verfügbar, wobei Folgendes gilt: für Menschen lesbare Version in [WEATHER.CONDITION_NAME].

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

Weitere Messwerte

Das Watch Face-Format bietet eine Reihe zusätzlicher Messwerte, darunter: [WEATHER.TEMPERATURE] und [WEATHER.UV_INDEX]. Detaillierte Informationen der verfügbaren Messwerte, darunter Einheiten und Datentypen, Datenquellen.

Stündliche und tägliche Prognosen

Sie können auf Prognosebedingungen für eine bestimmte Stunde oder einen bestimmten Tag in der Zukunft zugreifen wie folgt:

  • [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 voraus. Das Zifferblatt sollte jedoch immer die Verfügbarkeit von Prognosedaten. Möglicherweise ist hier ein anderer Zeitraum oder bestimmte Tage verfügbar: oder auf unterschiedlichen Geräten. Um beispielsweise zu prüfen, ob eine Prognose Daten sind für 1 Stunde ab jetzt verfügbar, verwenden Sie [WEATHER.HOURS.1.IS_AVAILABLE].

Tägliche und stündliche Prognosen umfassen auch eine Reihe von Messwerten wie [WEATHER.HOURS.<N>.TEMPERATURE] und [WEATHER.DAYS.<N>.CHANCE_OF_PRECIPITATION]. Detaillierte Informationen der verfügbaren Messwerte, darunter Einheiten und Datentypen, Datenquellen.

Mit Wetterdaten testen

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

Um Strom zu sparen, verwendet die Uhr nicht den integrierten GPS-Sensor, um einen Standort für die Wettervorhersage zu bestimmen, und stützt sich stattdessen auf von einem verbundenen Handheld-Gerät oder aus verfügbaren Netzwerken empfangen.

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 unter GitHub-Beispiel.