从版本 2 开始,手表界面格式包含对天气数据的支持。此数据涵盖一系列指标和时间范围,从当前条件到每小时和每日预报。
天气是使用表达式访问的。例如,要在<Text>
元素中显示当前天气状况,请使用类似于以下内容的表达式
<Text>
<Font family="SYNC_TO_DEVICE" size="32">
<Template>Today's weather: %s
<Parameter expression="[WEATHER.CONDITION_NAME]"/>
</Template>
</Font>
</Text>
可用性
手表界面应始终在访问[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 纪元时间戳。
可以使用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 快速参考