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] | รวมถึงความพร้อมด้วย |
ฟีเจอร์ที่รองรับ
นอกเหนือจากประเภทข้อมูลการออกกำลังกายและประเภทข้อมูลการตรวจสอบแบบพาสซีฟแล้ว อุปกรณ์ยังรองรับฟีเจอร์เพิ่มเติมสำหรับการทริกเกอร์เหตุการณ์ เช่น การเริ่มออกกำลังกาย และการวัดสถานะ เช่น หลับเทียบกับตื่น ฟีเจอร์บางอย่างมีให้บริการ ในทุกอุปกรณ์ ส่วนฟีเจอร์อื่นๆ มีให้บริการในบางอุปกรณ์เท่านั้น
ทริกเกอร์เหตุการณ์
อุปกรณ์ทั้งหมดรองรับทริกเกอร์ทั่วไปต่อไปนี้
- เป้าหมายรายวันสำหรับระยะทางและจำนวนก้าว
- เป้าหมายการออกกำลังกายสำหรับจำนวนก้าว ระยะทาง และระยะเวลา
อุปกรณ์อื่นๆ อาจรองรับทริกเกอร์เหตุการณ์ขั้นสูงกว่านี้ ตัวอย่างเช่น
- การนับรอบขณะว่ายน้ำ
- เป้าหมายการออกกำลังกายสำหรับแคลอรี่ที่ใช้ไป
- เป้าหมายการออกกำลังกายสำหรับความเร็วทันที
รัฐ
อุปกรณ์ทั้งหมดรองรับฟังก์ชันสถานะพื้นฐาน ฟังก์ชันสถานะหมายถึง ผู้ใช้กำลังออกกำลังกายอยู่หรือไม่
อุปกรณ์อื่นๆ อาจมีฟังก์ชันการทำงานของสถานะเพิ่มเติม ฟังก์ชันการทำงานเพิ่มเติมบางอย่างของสถานะ รวมถึงการตรวจหาว่ามีการหยุดชั่วคราวหรือ กลับมาทำงานต่อโดยอัตโนมัติหรือไม่ หรือเมื่อผู้ใช้ตื่นหรือหลับ
การแจ้งเตือนด้านสุขภาพในการตรวจสอบแบบพาสซีฟ
อุปกรณ์บางรุ่นรองรับการแจ้งเตือนด้านสุขภาพ อุปกรณ์บางรุ่นอาจไม่รองรับฟีเจอร์เหล่านี้ การแจ้งเตือนด้านสุขภาพบางอย่างรวมถึงการตรวจหาความผิดปกติของอัตราการเต้นของหัวใจหรือ การตรวจจับการล้ม
แนะนำสำหรับคุณ
- หมายเหตุ: ข้อความลิงก์จะแสดงเมื่อ JavaScript ปิดอยู่
- ข้อมูลและการออกกำลังกายที่ใช้งานอยู่
- บริการด้านสุขภาพใน Wear OS