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

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

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

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

Доступность

Циферблаты всегда должны проверять значение [WEATHER.IS_AVAILABLE] перед доступом к другим членам объекта [WEATHER.*] :

<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] могут иметь значение true, если данные устарели и попытки их обновления не удались. В таких случаях может быть показана доступная погода вместе с индикатором, показывающим, что при получении новых данных произошла ошибка.

Свежесть данных

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

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

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

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

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

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

Формат циферблата предоставляет ряд дополнительных показателей, таких как [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 для определения местоположения для прогноза погоды, а вместо этого полагаются на местоположение подключенного портативного устройства или доступных сетей.

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

  • Подключите эмулятор Wear OS к физическому телефону или телефону-эмулятору.
  • Имитируйте местоположение с помощью следующей команды adb:
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 .

{% дословно %} {% дословно %} {% дословно %} {% дословно %}