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

Prüfen Sie auch [WEATHER.IS_ERROR], der einen Fehler beim Laden der Wetterdaten angibt.

Beachten Sie, dass [WEATHER.IS_AVAILABLE] und [WEATHER.IS_ERROR] beide wahr sein können, wenn die Daten veraltet sind und Versuche, die Daten zu aktualisieren, fehlgeschlagen sind. In solchen Fällen kann das verfügbare Wetter zusammen mit einem Hinweis angezeigt werden, 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-Epochenzeitstempel in Millisekunden.

Dieser Wert kann mit der icuText(,) Methode 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 in [WEATHER.CONDITION_NAME].

Die Werte für [WEATHER.CONDITION] sind in den Datenquellen zu sehen. Beispiel: 4 steht für HEAVY_RAIN.

Weitere Messwerte

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

Stündliche und tägliche Vorhersagen

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

  • [WEATHER.HOURS.1.CONDITION] - die Vorhersagebedingungen in einer Stunde.
  • [WEATHER.DAYS.2.CONDITION] - die Vorhersagebedingungen 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 die Verfügbarkeit von Vorhersagedaten prüfen. Zu unterschiedlichen Zeiten oder auf unterschiedlichen Geräten sind möglicherweise unterschiedliche Zeiträume verfügbar. Wenn Sie beispielsweise prüfen möchten, ob Vorhersagedaten für eine Stunde im Voraus verfügbar sind, verwenden Sie [WEATHER.HOURS.1.IS_AVAILABLE].

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

Mit Wetterdaten testen

Um Wetterdaten zu erhalten, muss das Wear OS-Gerät den Standort des Geräts kennen.

Um Strom zu sparen, verwendet die Uhr nicht den integrierten GPS-Sensor, um einen Standort für die Wettervorhersage zu ermitteln, sondern greift stattdessen auf den Standort eines verbundenen Mobilgeräts oder von verfügbaren Netzwerken zurück.

So stellen Sie Standortdaten für Tests zur Verfügung:

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 und das Rendern von Wetterdaten finden Sie im GitHub-Beispiel.