Начиная с версии 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 .
{% дословно %}Рекомендуется для вас
- Примечание. Текст ссылки отображается, когда JavaScript отключен.
- Изменение поведения фокуса
- Побочные эффекты в Compose
- Краткий справочник AGSL