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