Dữ liệu thời tiết ở Định dạng mặt đồng hồ

Kể từ phiên bản 2, Định dạng mặt đồng hồ đã hỗ trợ dữ liệu thời tiết. Dữ liệu này bao gồm nhiều chỉ số và khung thời gian, từ các điều kiện hiện tại cho đến thông tin dự đoán hằng giờ và hằng ngày.

Thời tiết được truy cập bằng biểu thức. Ví dụ: để hiển thị điều kiện thời tiết hiện tại trong phần tử <Text>, hãy sử dụng biểu thức tương tự như sau:

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

Phạm vi cung cấp

Mặt đồng hồ phải luôn kiểm tra giá trị [WEATHER.IS_AVAILABLE] trước khi truy cập vào các thành phần khác của đối tượng [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>

Ngoài ra, mặt đồng hồ phải kiểm tra [WEATHER.IS_ERROR] (cho biết đã xảy ra lỗi khi tải dữ liệu thời tiết).

Lưu ý rằng cả [WEATHER.IS_AVAILABLE][WEATHER.IS_ERROR] đều có thể đúng, trong đó dữ liệu đã cũ và cố gắng làm mới dữ liệu không thành công. Trong những trường hợp như vậy, thông tin thời tiết có sẵn có thể hiển thị, cùng với một chỉ báo cho biết đã xảy ra lỗi khi tìm nạp dữ liệu mới.

Độ mới của dữ liệu

Bạn có thể truy cập dấu thời gian của dữ liệu có sẵn bằng [WEATHER.LAST_UPDATED]. Đây là dấu thời gian bắt đầu của hệ thống Unix tính bằng mili giây.

Giá trị này có thể được định dạng bằng phương thức icuText(,) để có được giá trị hiển thị mà con người có thể đọc được, như minh hoạ trong mẫu thời tiết.

Điều kiện thời tiết

Các điều kiện hiện tại có trong [WEATHER.CONDITION], với phiên bản con người có thể đọc được trong [WEATHER.CONDITION_NAME].

Bạn có thể xem các giá trị của [WEATHER.CONDITION] trong nguồn dữ liệu. Ví dụ: 4 đại diện cho HEAVY_RAIN.

Các chỉ số khác

Định dạng mặt đồng hồ cung cấp một loạt chỉ số bổ sung, chẳng hạn như [WEATHER.TEMPERATURE][WEATHER.UV_INDEX]. Để biết toàn bộ thông tin chi tiết về các chỉ số có sẵn, bao gồm cả đơn vị và kiểu dữ liệu, hãy truy cập vào trang tham khảo về nguồn dữ liệu.

Dự báo hằng giờ và hằng ngày

Bạn có thể truy cập vào điều kiện dự báo cho một giờ hoặc ngày cụ thể trong tương lai như sau:

  • [WEATHER.HOURS.1.CONDITION] - điều kiện dự báo 1 giờ kể từ bây giờ.
  • [WEATHER.DAYS.2.CONDITION] - điều kiện dự báo cho 2 ngày tới kể từ bây giờ.

Dữ liệu hằng giờ có thể có trước tối đa 8 giờ và dữ liệu hằng ngày trước tối đa 5 ngày. Tuy nhiên, mặt đồng hồ phải luôn kiểm tra để biết tính sẵn có của dữ liệu dự báo. phạm vi giờ hoặc ngày khác nhau có thể có sẵn vào những thời điểm khác nhau hoặc các thiết bị khác nhau. Ví dụ: để kiểm tra xem dữ liệu dự báo có sẵn trong 1 giờ kể từ bây giờ hay không, hãy sử dụng [WEATHER.HOURS.1.IS_AVAILABLE].

Thông tin dự đoán hằng ngày và hằng giờ cũng cung cấp nhiều chỉ số, chẳng hạn như [WEATHER.HOURS.<N>.TEMPERATURE][WEATHER.DAYS.<N>.CHANCE_OF_PRECIPITATION]. Để biết toàn bộ thông tin chi tiết về các chỉ số có sẵn, bao gồm cả đơn vị và kiểu dữ liệu, hãy truy cập vào trang tham khảo về nguồn dữ liệu.

Kiểm thử bằng dữ liệu thời tiết

Để thu thập được dữ liệu thời tiết, thiết bị Wear OS phải biết được vị trí của thiết bị.

Để tiết kiệm pin, đồng hồ không sử dụng cảm biến GPS tích hợp để xác định vị trí dự báo thời tiết mà dựa vào vị trí từ một thiết bị cầm tay đã kết nối hoặc từ các mạng có sẵn.

Để cung cấp dữ liệu vị trí cho mục đích thử nghiệm, hãy làm theo một trong những cách sau:

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

Thông tin khác

Để biết ví dụ đầy đủ về cách truy cập và kết xuất dữ liệu thời tiết, hãy xem mẫu GitHub.