ข้อมูลสภาพอากาศใน Watch Face Format

ตั้งแต่เวอร์ชัน 2 เป็นต้นมา 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 ในตัวเพื่อระบุตำแหน่งสำหรับพยากรณ์อากาศ แต่จะใช้ตำแหน่งจากอุปกรณ์พกพาที่เชื่อมต่อหรือจากเครือข่ายที่พร้อมใช้งานแทนเพื่อประหยัดพลังงาน

หากต้องการทำให้ข้อมูลตำแหน่งพร้อมใช้งานสำหรับการทดสอบ ให้ทำอย่างใดอย่างหนึ่งต่อไปนี้

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