ปรับปรุงความเข้ากันได้ของแอปในอุปกรณ์ Wear OS

API บริการข้อมูลสุขภาพของ Wear (WHS) เป็นคอมโพเนนต์ที่จำเป็นสำหรับอุปกรณ์ทั้งหมดที่ใช้ Wear OS 3 ขึ้นไป เนื่องจากมีอินเทอร์เฟซการผสานรวมที่สอดคล้องกันสำหรับนักพัฒนาแอปด้านสุขภาพและการออกกำลังกาย สร้างแอปให้ปรับเปลี่ยนได้อย่างราบรื่นในอุปกรณ์ต่างๆ และความสามารถที่แตกต่างกันของอุปกรณ์เหล่านั้น เพื่อรักษาความเข้ากันได้ในอุปกรณ์ต่างๆ และหลีกเลี่ยงปัญหาด้านประสบการณ์ของผู้ใช้ หากต้องการทำเช่นนั้น ให้ประกาศการขึ้นต่อกัน เฉพาะไคลเอ็นต์ที่แอปของคุณใช้ นอกจากนี้ ยังอนุญาตให้แอปของคุณ มีความยืดหยุ่นในการแสดงหรือนำเมตริกขั้นสูงที่ไม่บังคับออกตามความพร้อมใช้งาน

เซ็นเซอร์แต่ละตัวจะสร้างข้อมูลที่ความถี่แตกต่างกันไปตามอุปกรณ์ โดยขึ้นอยู่กับฮาร์ดแวร์และแพลตฟอร์มเซ็นเซอร์พื้นฐาน เช่น อุปกรณ์อาจส่งคืนอัตราการเต้นของหัวใจที่การประทับเวลาหนึ่งและตำแหน่งที่อีกการประทับเวลาหนึ่ง สร้างแอป ที่รับสตรีมข้อมูลอิสระได้ที่การประทับเวลาต่างๆ หรือที่การประทับเวลาที่ ทับซ้อนกัน

คู่มือนี้อธิบายลักษณะการทำงานที่คาดไว้และประเภทข้อมูลที่ไคลเอ็นต์ต่างๆ ภายในบริการด้านสุขภาพของ Wear รองรับ

ไคลเอ็นต์การออกกำลังกาย

ส่วนต่อไปนี้จะอธิบายลักษณะการทำงานและประเภทข้อมูลที่คาดไว้ของ ExerciseClient

ลักษณะการทำงานที่คาดไว้

สำหรับ ExerciseClient การออกกำลังกายบางประเภทจะขึ้นอยู่กับความพร้อมใช้งาน ของข้อมูลบางประเภท ตัวอย่างเช่น แบบฝึกหัดสำหรับเก้าอี้รถเข็นจะใช้ได้ก็ต่อเมื่อระบบรองรับ การเข็นเก้าอี้รถเข็น เปิดและปิดใช้ตัวเลือกเหล่านี้ตาม ความพร้อมใช้งานในอุปกรณ์ที่ต้องการ

ระบบจะสุ่มตัวอย่างและส่งข้อมูลการออกกำลังกายส่วนใหญ่ทุกๆ 1 วินาที โดยมีข้อยกเว้นบางประการดังนี้

  • ในบางสถานการณ์ ระบบจะอัปเดตข้อมูลการออกกำลังกายบางประเภทมากกว่า 1 ครั้งต่อวินาที ตัวอย่างเช่น เมื่อผู้ใช้วิ่ง ระบบจะอัปเดตจำนวนก้าวมากกว่า 1 ครั้งต่อวินาที
  • สำหรับข้อมูลบางประเภท ระบบจะส่งการอัปเดตก็ต่อเมื่อค่าปัจจุบัน แตกต่างจากค่าก่อนหน้าเท่านั้น

การนำส่งข้อมูลอาจเป็นแบบสตรีมมิงหรือแบบเป็นกลุ่ม ระบบจะสตรีมข้อมูลขณะที่ โปรเซสเซอร์แอปพลิเคชันเปิดอยู่ ซึ่งโดยปกติคือเมื่อจอแสดงผลเปิดอยู่และ โต้ตอบได้ เมื่อจอแสดงผลปิดหรือเข้าสู่โหมดแอมเบียนท์ (เปิดอยู่แต่ ไม่โต้ตอบ) ระบบจะจัดกลุ่มข้อมูลเพื่อประหยัดพลังงาน ระบบจะส่งข้อมูลที่จัดกลุ่ม ไปยังแอปพลิเคชันเมื่อโปรเซสเซอร์ของแอปพลิเคชันเปิดขึ้น อีกครั้ง ไม่ว่าจะเป็นเพราะนาฬิกาออกจากโหมดแอมเบียนท์ หรือเมื่อบัฟเฟอร์ สำหรับการจัดกลุ่มเต็ม ซึ่งจะแตกต่างกันไปตามอุปกรณ์ อัตราการสุ่มตัวอย่างจะยังคง เหมือนเดิมขณะที่อุปกรณ์อยู่ในโหมดแอมเบียนต์ ดังนั้นชุดข้อมูลที่ส่งจึงยังมีจุดข้อมูลที่มีความถี่สูง

ประเภทข้อมูลได้มาจากข้อมูลที่เซ็นเซอร์ในนาฬิกาสร้างขึ้นเท่านั้น เช่น ข้อมูลตำแหน่งมาจากนาฬิกาเท่านั้น ไม่ได้มาจากโทรศัพท์

ประเภทข้อมูล

ExerciseClient API ช่วยให้คุณเริ่ม หยุดชั่วคราว ออกกำลังกายต่อ และหยุดการออกกำลังกาย ประเภทต่างๆ ได้ สำหรับแบบฝึกหัดแต่ละรายการ WHS จะกำหนดชุดประเภทข้อมูลที่พร้อมให้คุณใช้งานสำหรับแบบฝึกหัดประเภทนั้นๆ ซึ่งจะช่วยประหยัดพลังงานและลดความซับซ้อนของตรรกะของแอป เนื่องจากเซ็นเซอร์ที่ไม่จำเป็นสำหรับการออกกำลังกายจะไม่เปิดขึ้น ตัวอย่างเช่น เมื่อเริ่มการวิ่ง ระบบจะให้และติดตามข้อมูลตำแหน่งสำหรับการวิ่งกลางแจ้งเท่านั้น เมื่อเริ่มการออกกำลังกายด้วยการปั่นจักรยาน ระบบจะไม่ แสดงหรือติดตามจำนวนก้าว ส่วนต่อไปนี้จะอธิบายประเภทข้อมูลที่รองรับใน ExerciseClient

ประเภทข้อมูลการออกกำลังกายที่รับประกัน

ข้อมูลการออกกำลังกายประเภทต่อไปนี้พร้อมใช้งานในอุปกรณ์ทุกเครื่อง

  • ประเภทข้อมูลตัวอย่างมีประเภทข้อมูล _STATS ที่เกี่ยวข้องซึ่งแสดงผลค่าต่ำสุด สูงสุด และค่าเฉลี่ยจากการออกกำลังกาย เช่น ดึงสถิติ PACE ได้ด้วยประเภทข้อมูล PACE_STATS
  • ประเภทข้อมูลช่วงเวลามีประเภทข้อมูล _TOTAL ที่สอดคล้องกันซึ่งแสดงผล ค่าสะสมจากการออกกำลังกาย เช่น ดึงสถิติ DISTANCE ได้ ด้วยประเภทข้อมูล DISTANCE_TOTAL
เมตริก ข้อมูลที่คาดไว้ หมายเหตุเกี่ยวกับลักษณะการทำงานที่คาดหวัง
HEART_RATE_BPM ครั้งต่อนาที [DataType: Double] อุปกรณ์ทั้งหมดจะสุ่มตัวอย่างอัตราการเต้นของหัวใจ 1 ครั้งต่อวินาทีในระหว่างการออกกำลังกาย อุปกรณ์บางเครื่อง รายงานค่า BPM ทุกวินาที อุปกรณ์บางรุ่นจะรายงาน BPM เฉพาะเมื่อมีการเปลี่ยนแปลงจากค่าก่อนหน้าเท่านั้น อย่าคาดหวังว่าจะได้รับค่า BPM ทุกๆ 1 วินาทีในอุปกรณ์ทั้งหมด
สถานที่ ละติจูดและลองจิจูด [DataType: Double] ข้อมูลตำแหน่งจะอิงตาม GPS ของนาฬิกาเท่านั้น อย่าคาดหวังว่าข้อมูลตำแหน่งจะมาจาก Fused Location Provider หรือบริการอื่นๆ ของ Android จุดข้อมูลแต่ละจุดยังมีค่าความแม่นยำ (หรือที่เรียกว่าข้อผิดพลาดของตำแหน่งแนวนอน) และความพร้อมใช้งานด้วย
ขั้นตอน [ประเภทข้อมูล: ยาว] จำนวนก้าวคือผลรวมที่เพิ่มขึ้นเรื่อยๆ ตลอดระยะเวลาการออกกำลังกาย โดยไม่รวมเวลาที่หยุดออกกำลังกายชั่วคราว
ระยะทาง Meters [ประเภทข้อมูล: Double] คำนวณจากตำแหน่งที่อิงตาม GPS เมื่อมี และจากจำนวนก้าว ในกรณีอื่นๆ ทั้งหมดหมายถึงทั้งหมดตลอดระยะเวลาของการออกกำลังกาย โดยไม่รวมเวลาที่หยุดออกกำลังกายชั่วคราว
ความเร็ว [เมตร / วินาที] [ประเภทข้อมูล: Double] แสดงผลค่าต่ำสุด สูงสุด และค่าเฉลี่ย โดยค่าเหล่านี้จะคำนวณจาก ระยะเวลาการออกกำลังกาย ไม่รวมเวลาที่หยุดออกกำลังกายชั่วคราว
PACE [วินาที / เมตร] [ประเภทข้อมูล: Double] ค่าเริ่มต้นคือ 0 หากความเร็วเป็น 0 ค่าเฉลี่ยจะคำนวณจากระยะเวลาของการออกกำลังกาย โดยไม่รวมเวลาที่หยุดการออกกำลังกายชั่วคราว
ELEVATION_GAIN เมตร [ประเภทข้อมูล: Double] การเปลี่ยนแปลงระดับความสูงในเชิงบวก ระบบจะรายงานผลรวมตลอดระยะเวลาการออกกำลังกาย โดยไม่รวมเวลา ที่หยุดการออกกำลังกายชั่วคราว
TOTAL_CALORIES kCal [ประเภทข้อมูล: Double] แคลอรี่ที่ใช้ไปในการเคลื่อนไหวร่างกายจะเพิ่มลงในอัตราการเผาผลาญขณะพัก แคลอรี ที่แสดงที่นี่จะพิจารณาส่วนสูง น้ำหนัก อายุ และเพศของผู้ใช้ตามที่ ระบุในการตั้งค่าระบบ แคลอรี่จะไม่นำข้อมูลโปรไฟล์ผู้ใช้ที่รวบรวมในแอปมาพิจารณา โดยแคลอรี่ทั้งหมดที่รายงานจะคำนวณจากระยะเวลาการออกกำลังกาย ไม่รวมเวลาที่หยุดการออกกำลังกายชั่วคราว

ประเภทข้อมูลการออกกำลังกายที่ไม่บังคับ

รายการประเภทข้อมูลต่อไปนี้ใช้ได้ในอุปกรณ์บางรุ่นเท่านั้น ดูรายการ DataType ทั้งหมดได้ในข้อมูลอ้างอิง Jetpack หาก DataType ไม่ได้อยู่ในรายการ "ต้องระบุ/รับประกัน" ก่อนหน้า ก็ถือว่าเป็นข้อมูลที่ไม่บังคับ

ดูตัวอย่างประเภทข้อมูลที่ไม่บังคับต่อไปนี้ รายการต่อไปนี้เป็นเพียงตัวอย่างบางส่วนเท่านั้น

เมตริก ข้อมูลที่คาดไว้ หมายเหตุเกี่ยวกับลักษณะการทำงานที่คาดหวัง
ABSOLUTE_ELEVATION [ประเภทข้อมูล: Double]
ELEVATION_LOSS Meters [ประเภทข้อมูล: Double] การเปลี่ยนแปลงระดับความสูงที่เป็นลบ ค่าเป็นค่าบวก เช่น การสูญเสียระดับความสูง 1 เมตรจะแสดงเป็น 1 ไม่ใช่ -1
STEPS_PER_MINUTE [ประเภทข้อมูล: ยาว]
WHEELCHAIR_PUSHES [ประเภทข้อมูล: ยาว] จำนวนการทำวีลแชร์พุชสำหรับใช้ในการออกกำลังกายด้วยวีลแชร์
REP_COUNT [ประเภทข้อมูล: ยาว]
SWIM_STROKE_COUNT [ประเภทข้อมูล: ยาว]
SWIM_LAP_COUNT [ประเภทข้อมูล: ยาว]

ประเภทข้อมูลต่อแบบฝึกหัด

ระบบจะแสดงผลข้อมูลประเภทต่างๆ สำหรับการออกกำลังกายแต่ละประเภท ประเภทข้อมูลที่ แสดงผลจะสอดคล้องกับความต้องการของแบบฝึกหัด เช่น ประเภทการออกกำลังกาย ปั่นจักรยานจะไม่แสดงผลประเภทข้อมูลจำนวนก้าว โปรดใช้วิธีการ Capabilities ที่รันไทม์เพื่อพิจารณาว่าอุปกรณ์ของผู้ใช้รองรับข้อมูลประเภทใด

การออกกำลังกายทุกประเภทจะแสดงข้อมูลอัตราการเต้นของหัวใจและแคลอรี่เป็นอย่างน้อย การออกกำลังกายอื่นๆ อาจรองรับข้อมูลประเภทเพิ่มเติม ทั้งนี้ขึ้นอยู่กับข้อกำหนดของการออกกำลังกาย

ลองดูตัวอย่างต่อไปนี้

  • การออกกำลังกาย เช่น การทำสมาธิหรือพิลาทิส รองรับเฉพาะอัตราการเต้นของหัวใจและแคลอรี่
  • การออกกำลังกาย เช่น บาสเกตบอลหรือแบดมินตัน รองรับอัตราการเต้นของหัวใจ แคลอรี ระยะทาง และจำนวนก้าว
  • การออกกำลังกาย เช่น การเดินและการวิ่ง รองรับอัตราการเต้นของหัวใจ แคลอรี ระยะทาง จำนวนก้าว ความเร็ว และฝีเท้า
  • การว่ายน้ำรองรับอัตราการเต้นของหัวใจ แคลอรี ระยะทาง และรอบว่ายน้ำ

ไคลเอ็นต์การตรวจสอบแบบพาสซีฟ

อุปกรณ์ทั้งหมดที่ใช้ Wear OS ต้องมีประเภทข้อมูลต่อไปนี้เพื่อ รองรับแอปที่ตรวจสอบข้อมูลสุขภาพแบบพาสซีฟ เช่น อัตราการเต้นของหัวใจและจำนวนก้าว โดยข้อมูลแต่ละประเภทจะต้องมาจากข้อมูลที่สร้างขึ้นโดย เซ็นเซอร์ในนาฬิกาเท่านั้น

ลักษณะการทำงานที่คาดไว้

เพื่อประหยัดพลังงาน ระบบจะจัดเก็บค่าเซ็นเซอร์ที่ได้จากการใช้การตรวจสอบแบบพาสซีฟไว้ใน MCU และจัดกลุ่มเป็นชุดเพื่อส่งไปยังบริการข้อมูลสุขภาพ ระบบจะแสดงผลลัพธ์ที่จัดกลุ่มเหล่านี้ในช่วงเวลาที่แตกต่างกันไปตามลักษณะการทำงานของระบบ ตัวอย่างเช่น การส่งคืนชุดข้อมูลเมื่อบัฟเฟอร์เซ็นเซอร์เต็ม หรือเมื่อผู้ใช้โต้ตอบกับจอแสดงผล

อย่าถือว่ามีช่วงเวลาการจัดกลุ่มที่กำหนดไว้ล่วงหน้าหรือคาดการณ์ได้สำหรับข้อมูลประเภทใดก็ตาม

ประเภทข้อมูลการตรวจสอบแบบพาสซีฟ

เมตริก ข้อมูลที่คาดไว้ Notes
HEART_RATE_BPM ครั้งต่อนาที [ประเภทข้อมูล: Double] อุปกรณ์อาจแสดงค่าอัตราการเต้นของหัวใจในช่วงเวลาที่ต่างกัน อุปกรณ์บางเครื่องอาจอ่านค่าทุกวินาที อุปกรณ์อื่นๆ อาจอ่านค่าทุกๆ 10 นาที ระบบจะไม่ให้แอปเข้าถึงช่วงเวลาเหล่านี้ แอป ควรปรับให้เข้ากับช่วงการสุ่มตัวอย่างที่แตกต่างกันได้อย่างราบรื่น
STEPS_DAILY/STEPS [ประเภทข้อมูล: ยาว] จำนวนก้าวรายวันคือจำนวนก้าวทั้งหมดที่เดินนับตั้งแต่การรีเซ็ตครั้งล่าสุด ซึ่ง WHS จะทริกเกอร์เมื่อถึงเวลาเที่ยงคืน ซึ่งรวมถึงขั้นตอนที่ดำเนินการขณะ หยุดการออกกำลังกายที่ใช้งานอยู่ชั่วคราว Steps คือเดลต้าแบบละเอียดนับตั้งแต่การตรวจสอบครั้งล่าสุด
DISTANCE_DAILY/DISTANCE เมตร [ประเภทข้อมูล: Double] คำนวณจากตัวตรวจวัดความเร่ง/จำนวนก้าว อย่าคำนวณระหว่าง GPS เพื่อให้มั่นใจว่า ผู้ใช้ที่ปิดบริการตำแหน่งจะยังคงได้รับจำนวนก้าวที่แม่นยำ
ความเร็ว [เมตร / วินาที] [ประเภทข้อมูล: Double]
CALORIES_DAILY kCal [ประเภทข้อมูล: Double] แคลอรี่สำหรับวัน ซึ่งรวมถึงแคลอรี่ที่ใช้ไปในการเคลื่อนไหวร่างกายและ BMR ตัวเลขแคลอรี ที่แสดงที่นี่จะพิจารณาส่วนสูง น้ำหนัก อายุ และเพศของผู้ใช้ตามที่ระบุในการตั้งค่าระบบ แคลอรี่จะไม่ได้รับการปรับ ตามข้อมูลโปรไฟล์ผู้ใช้ที่รวบรวมในแอป
RUNNING_STEPS (ไม่บังคับ) [ประเภทข้อมูล: ยาว] ส่วนต่างของจำนวนก้าวทั้งในระหว่างการออกกำลังกายและในเวลาอื่นๆ ติดตามทั้งสองอย่างพร้อมกัน
WALKING_STEPS (ไม่บังคับ) [ประเภทข้อมูล: ยาว]
ELEVATION_GAIN เมตร [ประเภทข้อมูล: Double] รวมเฉพาะเดลต้าที่เป็นบวกในระดับความสูง
ELEVATION_LOSS เมตร [ประเภทข้อมูล: Double] รวมเฉพาะเดลต้าเชิงลบในระดับความสูง
FLOORS_DAILY [ประเภทข้อมูล: Double] แสดงเป็นชั้น "บางส่วน" ได้

เป้าหมายประจำวันของการตรวจสอบแบบพาสซีฟ

เมตริก ข้อมูลที่คาดไว้ Notes
STEPS_DAILY [ประเภทข้อมูล: ยาว] จำนวนก้าวรายวัน รวมถึงจำนวนก้าวที่เดินในขณะที่หยุดการออกกำลังกายชั่วคราว คือจำนวนก้าวทั้งหมดที่เดินนับตั้งแต่การรีเซ็ตครั้งล่าสุด WHS จะรีเซ็ต ตอนเที่ยงคืน
FLOORS_DAILY [ประเภทข้อมูล: Double] แสดงเป็นชั้น "บางส่วน" ของบันไดได้
CALORIES_DAILY kCal [ประเภทข้อมูล: Double] แคลอรี่สำหรับวัน ซึ่งรวมถึงแคลอรี่ขณะเคลื่อนไหวและ BMR
DISTANCE_DAILY เมตร [ประเภทข้อมูล: Double] คำนวณจากตัวตรวจวัดความเร่งหรือจำนวนก้าว อย่าคำนวณโดยใช้ GPS เพื่อให้ผู้ใช้ที่ปิดบริการตำแหน่งยังคง ได้รับจำนวนก้าวที่ถูกต้อง
DAILY_ELEVATION_GAIN เมตร [ประเภทข้อมูล: Double] รวมเฉพาะเดลต้าที่เป็นบวกในระดับความสูง

MeasureClient

ใช้ MeasureClient เพื่อวัดอัตราการเต้นของหัวใจในขณะนั้น

ลักษณะการทำงานที่คาดไว้

MeasureClient และ PassiveClient มีความคล้ายกันในบางแง่มุม ทั้ง 2 อย่างนี้จะให้สถิติสุขภาพแบบไม่เป็นชุดซึ่งไม่เกี่ยวข้องกับการออกกำลังกาย คุณใช้ทั้ง 2 อย่างเพื่อวัดอัตราการเต้นของหัวใจได้ แต่ความแตกต่างหลักคือ MeasureClient มีข้อมูลความพร้อมใช้งานของอัตราการเต้นของหัวใจ แต่ PassiveClient ไม่มีข้อมูลความพร้อมใช้งาน

ประเภทข้อมูล

เมตริก ข้อมูลที่คาดไว้ Notes
HEART_RATE_BPM ครั้งต่อนาที [ประเภทข้อมูล: Double] รวมถึงความพร้อมด้วย

ฟีเจอร์ที่รองรับ

นอกเหนือจากประเภทข้อมูลการออกกำลังกายและประเภทข้อมูลการตรวจสอบแบบพาสซีฟแล้ว อุปกรณ์ยังรองรับฟีเจอร์เพิ่มเติมสำหรับการทริกเกอร์เหตุการณ์ เช่น การเริ่มออกกำลังกาย และการวัดสถานะ เช่น หลับเทียบกับตื่น ฟีเจอร์บางอย่างมีให้บริการ ในทุกอุปกรณ์ ส่วนฟีเจอร์อื่นๆ มีให้บริการในบางอุปกรณ์เท่านั้น

ทริกเกอร์เหตุการณ์

อุปกรณ์ทั้งหมดรองรับทริกเกอร์ทั่วไปต่อไปนี้

  • เป้าหมายรายวันสำหรับระยะทางและจำนวนก้าว
  • เป้าหมายการออกกำลังกายสำหรับจำนวนก้าว ระยะทาง และระยะเวลา

อุปกรณ์อื่นๆ อาจรองรับทริกเกอร์เหตุการณ์ขั้นสูงกว่านี้ ตัวอย่างเช่น

  • การนับรอบขณะว่ายน้ำ
  • เป้าหมายการออกกำลังกายสำหรับแคลอรี่ที่ใช้ไป
  • เป้าหมายการออกกำลังกายสำหรับความเร็วทันที

รัฐ

อุปกรณ์ทั้งหมดรองรับฟังก์ชันสถานะพื้นฐาน ฟังก์ชันสถานะหมายถึง ผู้ใช้กำลังออกกำลังกายอยู่หรือไม่

อุปกรณ์อื่นๆ อาจมีฟังก์ชันการทำงานของสถานะเพิ่มเติม ฟังก์ชันการทำงานเพิ่มเติมบางอย่างของสถานะ รวมถึงการตรวจหาว่ามีการหยุดชั่วคราวหรือ กลับมาทำงานต่อโดยอัตโนมัติหรือไม่ หรือเมื่อผู้ใช้ตื่นหรือหลับ

การแจ้งเตือนด้านสุขภาพในการตรวจสอบแบบพาสซีฟ

อุปกรณ์บางรุ่นรองรับการแจ้งเตือนด้านสุขภาพ อุปกรณ์บางรุ่นอาจไม่รองรับฟีเจอร์เหล่านี้ การแจ้งเตือนด้านสุขภาพบางอย่างรวมถึงการตรวจหาความผิดปกติของอัตราการเต้นของหัวใจหรือ การตรวจจับการล้ม