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ừ tình hình hiện tại đến thông tin dự báo theo giờ và theo ngày.

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

<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>

Phạm vi cung cấp

Trước khi bạn truy cập vào các thành phần khác của đối tượng [WEATHER.*], hãy kiểm tra giá trị [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>

Bạn cũng nên kiểm tra [WEATHER.IS_ERROR], cho biết lỗi khi tải dữ liệu thời tiết.

Xin lưu ý rằng [WEATHER.IS_AVAILABLE][WEATHER.IS_ERROR] đều có thể là true (đúng), trong đó dữ liệu đã cũ và không làm mới được. Trong những trường hợp như vậy, thông tin thời tiết hiện có có thể xuất hiện 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 vào dấu thời gian của dữ liệu có sẵn bằng cách sử dụ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.

Bạn có thể định dạng giá trị này bằng phương thức icuText(,) để nhận được một biểu thị dễ đọ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 dễ đọc trong [WEATHER.CONDITION_NAME].

Bạn có thể xem các giá trị cho [WEATHER.CONDITION] trong nguồn dữ liệu. Ví dụ: 4 biểu thị 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 thông tin chi tiết đầy đủ về các chỉ số có sẵn, bao gồm cả đơn vị và loại dữ liệu, hãy truy cập vào trang tham khảo nguồn dữ liệu.

Dự báo theo 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 2 ngày kể từ bây giờ.

Dữ liệu hằng giờ có thể được cung cấp sớm hơn tối đa 8 giờ và dữ liệu hằng ngày sớm hơn tối đa 5 ngày. Tuy nhiên, mặt đồng hồ phải luôn kiểm tra xem có dữ liệu dự báo hay không. Bạn có thể sử dụng một khoảng thời gian hoặc số ngày khác nhau vào những thời điểm hoặc trên những 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ự báo hằng ngày và hằng giờ cũng có nhiều chỉ số, chẳng hạn như [WEATHER.HOURS.<N>.TEMPERATURE][WEATHER.DAYS.<N>.CHANCE_OF_PRECIPITATION]. Để biết thông tin chi tiết đầy đủ về các chỉ số có sẵn, bao gồm cả đơn vị và loại dữ liệu, hãy truy cập vào trang tham khảo nguồn dữ liệu.

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

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

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

Để cung cấp dữ liệu vị trí cho hoạt động kiểm thử, 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 chi tiết khác

Để xem 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 trên GitHub.