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 dự báo 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 trong phần tử <Text>, sử dụng biểu thức tương tự như 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 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 chọn [WEATHER.IS_ERROR] để cho biết đã xảy ra lỗi khi tải dữ liệu thời tiết.

Xin 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 hiện có có thể được hiển thị, cùng với một chỉ báo cho biết rằng ở đó đã 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 hiện có bằng [WEATHER.LAST_UPDATED] là dấu thời gian bắt đầu của hệ thống Unix (tính bằng mili giây).

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

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

Điều kiện hiện tại có sẵn trong [WEATHER.CONDITION], với phiên bản mà 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. Cho 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 nhiều 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 chỉ số có sẵn, bao gồm các đơn vị và loại dữ liệu, hãy truy cập vào nguồn dữ liệu.

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

Bạn có thể xem đ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ó sẵn tối đa 8 giờ trước và dữ liệu hằng ngày tối đa 5 ngày phía trước. Tuy nhiên, mặt đồng hồ phải luôn kiểm tra xem có sẵn dữ liệu dự báo. Có thể có phạm vi giờ hoặc ngày khác tại vào các thời điểm khác nhau hoặc trên các thiết bị khác nhau. Ví dụ: để kiểm tra xem dự báo dữ liệu khả dụng trong 1 giờ kể từ bây giờ, 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 bao gồm 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 chỉ số có sẵn, bao gồm các đơn vị và loại dữ liệu, hãy truy cập vào 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 một vị trí để dự báo thời tiết và thay vào đó dựa vào vị trí từ một thiết bị cầm tay được 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à hiển thị dữ liệu thời tiết, hãy xem Mẫu GitHub.