Данные о погоде в формате циферблата

Начиная со второй версии, формат циферблата Watch Face Format включает поддержку данных о погоде. Эти данные охватывают широкий спектр показателей и временных рамок, от текущих условий до почасовых и суточных прогнозов.

Информация о погоде доступна с помощью выражений . Например, чтобы отобразить текущие погодные условия в элементе <Text> , используйте выражение, подобное следующему:

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

Доступность

Прежде чем обращаться к другим членам объекта [WEATHER.*] , проверьте значение [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>

Также следует проверить наличие ошибки [WEATHER.IS_ERROR] , которая указывает на ошибку при загрузке данных о погоде.

Обратите внимание, что значения [WEATHER.IS_AVAILABLE] и [WEATHER.IS_ERROR] могут быть истинными, что означает, что данные устарели и попытки их обновления не увенчались успехом. В таких случаях может отображаться доступная погода, а также индикатор ошибки при получении новых данных.

Актуальность данных

Временную метку доступных данных можно получить с помощью [WEATHER.LAST_UPDATED] , которая представляет собой метку времени Unix epoch в миллисекундах.

Это значение можно отформатировать с помощью метода icuText(,) для получения удобочитаемого представления, как показано в примере с погодой .

Погодные условия

Текущие погодные условия доступны в файле [WEATHER.CONDITION] , а удобочитаемая версия находится в файле [WEATHER.CONDITION_NAME] .

Значения для [WEATHER.CONDITION] можно увидеть в источниках данных . Например, 4 обозначает HEAVY_RAIN .

Другие показатели

Watch Face Format предоставляет ряд дополнительных показателей, таких как [WEATHER.TEMPERATURE] и [WEATHER.UV_INDEX] . Полную информацию о доступных показателях, включая единицы измерения и типы данных, можно найти на странице справочника источников данных .

Почасовые и суточные прогнозы

Доступ к прогнозу погодных условий на конкретный час или день в будущем можно получить следующим образом:

  • [WEATHER.HOURS.1.CONDITION] - прогноз погоды на 1 час вперед.
  • [WEATHER.DAYS.2.CONDITION] - прогноз погоды на 2 дня вперед.

Почасовые данные могут быть доступны на срок до 8 часов вперед, а суточные — на срок до 5 дней вперед. Однако циферблат часов всегда должен проверять наличие прогнозных данных. В разное время или на разных устройствах могут быть доступны данные на разные периоды времени или дни. Например, чтобы проверить, доступны ли прогнозные данные на 1 час вперед, используйте [WEATHER.HOURS.1.IS_AVAILABLE] .

Ежедневные и почасовые прогнозы также содержат ряд показателей, таких как [WEATHER.HOURS.<N>.TEMPERATURE] и [WEATHER.DAYS.<N>.CHANCE_OF_PRECIPITATION] . Полную информацию о доступных показателях, включая единицы измерения и типы данных, можно найти на странице справочника источников данных .

Тестирование с использованием данных о погоде.

Для получения данных о погоде устройство Wear OS должно знать свое местоположение.

Для экономии энергии часы не используют встроенный GPS-датчик для определения местоположения при составлении прогноза погоды, а вместо этого полагаются на данные о местоположении подключенного портативного устройства или доступных сетей.

Чтобы сделать данные о местоположении доступными для тестирования, выполните одно из следующих действий:

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

Дополнительные сведения

Полный пример доступа к данным о погоде и их отображения можно найти в образце на GitHub .

{% verbatim %} {% endverbatim %} {% verbatim %} {% endverbatim %}