Nâng cao khả năng tương thích của ứng dụng trên các thiết bị Wear OS

Wear Health Services API (API Dịch vụ sức khoẻ trên Wear (WHS)) là một thành phần bắt buộc cho tất cả các thiết bị chạy Wear OS 3 trở lên, vì API này cung cấp một nền tảng tích hợp nhất quán cho các nhà phát triển ứng dụng sức khoẻ và thể hình. Tạo một ứng dụng được điều chỉnh linh hoạt cho nhiều thiết bị với các chức năng khác nhau để duy trì khả năng tương thích trên các thiết bị, đồng thời tránh những vấn đề về trải nghiệm người dùng. Để làm như vậy, bạn chỉ khai báo các phần phụ thuộc cho các ứng dụng khách mà ứng dụng của bạn sử dụng. Ngoài ra, hãy cho phép ứng dụng của bạn linh hoạt hiển thị hoặc xoá các chỉ số nâng cao không bắt buộc dựa trên tình trạng sẵn có của những chỉ số này.

Các cảm biến khác nhau sẽ tạo ra dữ liệu ở tần suất khác nhau tuỳ theo thiết bị dựa trên nền tảng cảm biến và phần cứng cơ bản. Ví dụ: một thiết bị có thể trả về dữ liệu nhịp tim ở một dấu thời gian và vị trí ở một dấu thời gian khác. Tạo các ứng dụng có thể nhận luồng dữ liệu độc lập ở nhiều dấu thời gian hoặc ở các dấu thời gian trùng lặp.

Hướng dẫn này mô tả hành vi dự kiến và các loại dữ liệu được nhiều ứng dụng khách hỗ trợ trong Dịch vụ Sức khoẻ trên Wear.

Ứng dụng tập thể dục

Các phần sau mô tả hành vi dự kiến và các loại dữ liệu của ExerciseClient.

Hành vi dự kiến

Đối với ExerciseClient, một số loại bài tập phụ thuộc vào tình trạng có sẵn của một số loại dữ liệu. Ví dụ: Bạn chỉ có thể sử dụng các bài tập cho xe lăn nếu dữ liệu số lần đẩy xe lăn được hỗ trợ. Bật và tắt các tuỳ chọn này dựa trên tình trạng có sẵn của dữ liệu trên một thiết bị nhất định.

Hầu hết các loại dữ liệu tập thể dục đều được lấy mẫu và phân phối cách nhau một giây, trừ một số trường hợp ngoại lệ:

  • Trong một số trường hợp, một số loại dữ liệu tập thể dục được cập nhật nhiều hơn một lần mỗi giây. Ví dụ: khi người dùng đang chạy, số bước được cập nhật nhiều hơn một lần mỗi giây.
  • Đối với một số loại dữ liệu, bản cập nhật chỉ được phân phối nếu giá trị hiện tại khác với giá trị trước đó.

Hoạt động phân phối dữ liệu có thể phát trực tuyến hoặc gửi theo lô. Dữ liệu được truyền trực tuyến trong khi trình xử lý ứng dụng đang bật, thường là khi màn hình đang bật và tương tác. Sau khi màn hình tắt hoặc chuyển sang chế độ môi trường xung quanh (bật nhưng không tương tác), dữ liệu sẽ được phân lô để tiết kiệm pin. Dữ liệu đã phân lô được phân phối đến ứng dụng khi bộ xử lý ứng dụng bật lại, tuỳ vào thiết bị có thể do đồng hồ thoát khỏi chế độ môi trường xung quanh hoặc cũng có thể do các bộ đệm đã đầy dữ liệu. Tốc độ lấy mẫu vẫn giữ nguyên khi thiết bị ở chế độ môi trường xung quanh, vì vậy, lô được phân phối vẫn có các điểm dữ liệu với tần suất cao.

Các loại dữ liệu chỉ được lấy từ dữ liệu do cảm biến trên đồng hồ tạo ra. Ví dụ: dữ liệu vị trí hoàn toàn đến từ đồng hồ chứ không phải từ điện thoại.

Loại dữ liệu

API ExerciseClient cho phép bạn bắt đầu, tạm dừng, tiếp tục và dừng các bài tập thể dục riêng biệt. Đối với mỗi bài tập thể dục, WHS xác định một tập hợp các loại dữ liệu được cung cấp cho bạn cho loại bài tập đó. Điều này giúp tiết kiệm pin và đơn giản hoá logic ứng dụng, vì các cảm biến không cần thiết cho một bài tập nhất định sẽ không được bật. Ví dụ: Khi bắt đầu bài tập chạy, dữ liệu vị trí chỉ được cung cấp và theo dõi cho bài tập chạy ngoài trời. Khi bắt đầu bài tập đạp xe, các bước sẽ không được cung cấp hoặc theo dõi. Các phần sau đây mô tả các loại dữ liệu được hỗ trợ trong ExerciseClient.

Các loại dữ liệu tập thể dục được đảm bảo

Các loại dữ liệu tập thể dục sau đây có sẵn trên tất cả các thiết bị.

  • Các loại dữ liệu mẫu có Loại dữ liệu _STATS tương ứng trả về giá trị tối thiểu, tối đa và trung bình từ bài tập. Ví dụ: bạn có thể lấy số liệu thống kê về PACE (NHỊP ĐỘ) bằng Loại Dữ liệu PACE_STATS.
  • Các loại dữ liệu gián đoạn có Loại dữ liệu _TOTAL tương ứng trả về giá trị tích luỹ từ bài tập. Ví dụ: bạn có thể lấy số liệu thống kê về DISTANCE (QUÃNG ĐƯỜNG) bằng Loại Dữ liệu DISTANCE_TOTAL.
Chỉ số Dữ liệu dự kiến Lưu ý về hành vi dự kiến
HEART_RATE_BPM Nhịp/phút [Loại dữ liệu: Double (Kép)] Tất cả các thiết bị đều lấy mẫu nhịp tim một lần mỗi giây trong khi tập luyện. Một số thiết bị báo cáo giá trị BPM trên từng giây. Một số thiết bị chỉ báo cáo BPM khi có thay đổi so với giá trị trước đó. Bạn có thể không nhận được giá trị BPM tại mỗi khoảng thời gian một giây trên một số thiết bị.
VỊ TRÍ Vĩ độ và kinh độ [Loại dữ liệu: Double (Kép)] Dữ liệu vị trí chỉ dựa trên GPS của đồng hồ. Bạn có thể không nhận được dữ liệu vị trí từ Trình cung cấp vị trí kết hợp hoặc các dịch vụ khác của Android. Mỗi điểm dữ liệu cũng bao gồm một giá trị về độ chính xác (còn được gọi là lỗi vị trí ngang) và tình trạng có sẵn.
CÁC BƯỚC [Loại dữ liệu: Long] Số bước là tổng số bước chạy trong khoảng thời gian thực hiện bài tập, không bao gồm thời gian tạm dừng bài tập
DISTANCE Mét [Loại dữ liệu: Double (Kép)] Được tính toán từ vị trí dựa trên GPS (nếu có), và từ các bước (nếu không). Tổng số là tổng thời gian thực hiện bài tập, không bao gồm thời gian tạm dừng bài tập.
TỐC ĐỘ [mét/giây] [Loại dữ liệu: Double (Kép)] Trả về các giá trị tối thiểu, tối đa và trung bình. Đây là khoảng thời gian thực hiện bài tập, không bao gồm thời gian tạm dừng bài tập.
PACE [giây/mét] [Loại dữ liệu: Double (Kép)] Giá trị mặc định là 0 nếu tốc độ bằng 0. Giá trị trung bình là khoảng thời gian thực hiện bài tập, không bao gồm thời gian tạm dừng bài tập.
ELEVATION_GAIN (TĂNG ĐỘ CAO) Mét. [Loại dữ liệu: Double (Kép)] Thay đổi độ cao theo chiều hướng tăng. Tổng số được báo cáo trong khoảng thời gian thực hiện bài tập, không bao gồm thời gian tạm dừng bài tập.
TOTAL_CALORIES kCal [Loại dữ liệu: Double (Kép)] Lượng calo hoạt động đã đốt cháy được thêm vào Tỷ lệ trao đổi chất cơ bản. Lượng calo thải ra ở đây có tính đến chiều cao, cân nặng, độ tuổi và giới tính của người dùng như được chỉ định trong phần cài đặt hệ thống. Lượng calo không tính đến bất kỳ dữ liệu nào về hồ sơ người dùng được thu thập trong ứng dụng của bạn. Tổng số liệu được báo cáo trong khoảng thời gian thực hiện bài tập, không bao gồm thời gian tạm dừng bài tập.

Các loại dữ liệu bài tập thể dục không bắt buộc

Danh sách các loại dữ liệu sau đây chỉ có trên một số thiết bị nhất định. Hãy xem tài liệu tham khảo Jetpack để biết danh sách đầy đủ các Loại dữ liệu. Nếu Loại dữ liệu không có trong danh sách trước đây là "bắt buộc/được đảm bảo", thì dữ liệu đó là không bắt buộc.

Xem các ví dụ sau về loại dữ liệu không bắt buộc. Đây chưa phải là danh sách đầy đủ:

Chỉ số Dữ liệu dự kiến Lưu ý về hành vi dự kiến
ABSOLUTE_ELEVATION (ĐỘ CAO TUYỆT ĐỐI) [Loại dữ liệu: Double (Kép)]
ELEVATION_LOSS Mét [Loại dữ liệu: Double (Kép)] Thay đổi độ cao theo chiều hướng giảm. Giá trị dương. Ví dụ: trường hợp giảm độ cao 1 m sẽ trả về giá trị là 1 chứ không phải -1.
STEPS_PER_MINUTE [Loại dữ liệu: Long]
WHEELCHAIR_PUSHES (SỐ LẦN ĐẨY XE LĂN) [Loại dữ liệu: Long] Số lần đẩy xe lăn được sử dụng trong các bài tập cho xe lăn.
REP_COUNT [Loại dữ liệu: Long]
SWIM_STROKE_COUNT (SỐ LẦN BƠI) [Loại dữ liệu: Long]
SWIM_LAP_COUNT (SỐ VÒNG BƠI) [Loại dữ liệu: Long]

Loại dữ liệu cho mỗi bài tập

Mỗi loại bài tập sẽ trả về các loại dữ liệu khác nhau. Các loại dữ liệu được trả về phù hợp với nhu cầu của bài tập. Ví dụ: Loại bài tập BIKING (ĐẠP XE) sẽ không trả về Loại dữ liệu STEPS (BƯỚC). Vui lòng sử dụng phương thức Capabilities trong thời gian chạy để xác định những loại dữ liệu được hỗ trợ trên thiết bị của người dùng.

Ở mức tối thiểu, tất cả các loại bài tập thể dục đều trả về dữ liệu nhịp tim và lượng calo. Các bài tập thể dục khác có thể hỗ trợ các loại dữ liệu bổ sung, tuỳ thuộc vào yêu cầu của bài tập.

Dưới đây là một số ví dụ:

  • Các bài tập như thiền hoặc pilate chỉ hỗ trợ dữ liệu nhịp tim và lượng calo
  • Các bài tập như bóng rổ hoặc cầu lông sẽ hỗ trợ dữ liệu nhịp tim, lượng calo, quãng đường và số bước.
  • Các bài tập như đi bộ và chạy bộ sẽ hỗ trợ dữ liệu nhịp tim, lượng calo, quãng đường, số bước, tốc độ và nhịp độ
  • Các bài tập bơi sẽ hỗ trợ dữ liệu nhịp tim, lượng calo, quãng đường và vòng bơi

Ứng dụng khách giám sát thụ động

Bạn bắt buộc phải sử dụng các Loại dữ liệu sau cho tất cả thiết bị chạy Wear OS để hỗ trợ các ứng dụng theo dõi dữ liệu sức khoẻ một cách thụ động, chẳng hạn như nhịp tim và số bước. Bạn chỉ có thể lấy mỗi Loại dữ liệu này từ dữ liệu do các cảm biến trên đồng hồ tạo ra.

Hành vi dự kiến

Để tiết kiệm pin, các chỉ số cảm biến thu được qua tính năng Giám sát thụ động được lưu trữ trong MCU và được gửi theo lô đến Dịch vụ sức khoẻ. Kết quả dữ liệu theo lô này được trả về trong nhiều khoảng thời gian tuỳ thuộc vào hành vi của hệ thống. Một số ví dụ bao gồm việc trả về các lô dữ liệu khi vùng đệm cảm biến đầy hoặc khi người dùng tương tác với màn hình.

Đừng giả định bất kỳ khoảng thời gian trả về dữ liệu theo lô nào có thể xác định trước hoặc dự đoán được cho bất kỳ loại dữ liệu nào.

Loại dữ liệu giám sát thụ động

Chỉ số Dữ liệu dự kiến Ghi chú
HEART_RATE_BPM Nhịp/phút [Loại dữ liệu: Double (Kép)] Các thiết bị có thể trả về chỉ số nhịp tim ở nhiều khoảng thời gian. Một số thiết bị có thể đọc mỗi giây. Các thiết bị khác có thể đọc mười phút một lần. Các khoảng thời gian này không áp dụng cho các ứng dụng. Các ứng dụng phải linh hoạt thích ứng với khoảng thời gian lấy mẫu khác nhau.
STEPS_DAILY/STEPS (SỐ BƯỚC HẰNG NGÀY/SỐ BƯỚC) [Loại dữ liệu: Long] Số bước hằng ngày là tổng số bước đã đi được kể từ lần đặt lại gần đây nhất (được WHS kích hoạt vào lúc nửa đêm). Dữ liệu này bao gồm tất cả số bước được thực hiện trong khi một bài tập đang hoạt động bị tạm dừng. Các bước là một quy trình delta chi tiết kể từ lần kiểm tra cuối cùng.
{5/}_NGÀY/DISTANCE mét [Loại dữ liệu: Double (Kép)] Được tính từ Gia tốc kế/Số bước. Không tính trong quá trình bật GPS để đảm bảo việc những người dùng đã tắt dịch vụ vị trí vẫn có thể nhận được dữ liệu số bước chính xác.
TỐC ĐỘ [mét/giây] [Loại dữ liệu: Double (Kép)]
CALORIES_NGÀY kCal [Loại dữ liệu: Double (Kép)] Lượng calo trong ngày, bao gồm lượng calo hoạt động và BMR. Số calo được đốt cháy ở đây có tính đến chiều cao, cân nặng, độ tuổi và giới tính của người dùng như chỉ định trong phần cài đặt hệ thống. Lượng calo không được điều chỉnh theo dữ liệu hồ sơ người dùng nào được thu thập trong ứng dụng của bạn.
RUNNING_steps (Số bước chạy) (không bắt buộc) [Loại dữ liệu: Long] Delta của cả các bước trong bài tập và các bước khác. Theo dõi cả hai cùng một lúc.
WALKING_STEPS (không bắt buộc) [Loại dữ liệu: Long]
ELEVATION_GAIN (TĂNG ĐỘ CAO) mét [Loại dữ liệu: Double (Kép)] Chỉ bao gồm delta dương trên độ cao
ELEVATION_LOSS mét [Loại dữ liệu: Double (Kép)] Chỉ bao gồm delta âm ở độ cao
SÀNG_HÀNG NGÀY [Loại dữ liệu: Double (Kép)] Có thể được biểu thị dưới dạng "một phần" số tâng cấp

Theo dõi thụ động mục tiêu hằng ngày

Chỉ số Dữ liệu dự kiến Ghi chú
SỐ BƯỚC HẰNG NGÀY [Loại dữ liệu: Long] Số bước hằng ngày (bao gồm cả mọi bước đã thực hiện trong khi tạm dừng một bài tập đang hoạt động) là tổng số bước đã thực hiện kể từ lần đặt lại gần đây nhất. WHS sẽ đặt lại vào lúc nửa đêm.
SÀNG_HÀNG NGÀY [Loại dữ liệu: Double (Kép)] Có thể được biểu thị dưới dạng "một phần" số tâng cấp của cầu thang.
CALORIES_NGÀY kCal [Loại dữ liệu: Double (Kép)] Lượng calo trong ngày, bao gồm lượng calo hoạt động và BMR.
KHOẢNG_NGÀY_NGÀY mét [Loại dữ liệu: Double (Kép)] Được tính bằng gia tốc kế hoặc số bước. Không tính chỉ số này bằng cách sử dụng GPS để những người dùng đã tắt dịch vụ vị trí vẫn có thể nhận được dữ liệu số bước chính xác.
DAILY_ELEVATION_GAIN (TĂNG ĐỘ CAO HẰNG NGÀY) mét [Loại dữ liệu: Double (Kép)] Chỉ bao gồm delta dương trên độ cao

MeasureClient

Sử dụng MeasureClient để đo nhịp tim tại một thời điểm nhất định.

Hành vi dự kiến

MeasureClientPassiveClient tương tự như nhau theo một số cách. Cả hai đều cung cấp số liệu thống kê về sức khoẻ không theo lô không liên quan đến một bài tập thể dục. Bạn có thể sử dụng cả hai để đo nhịp tim, nhưng điểm khác biệt chính là MeasureClient bao gồm tình trạng có sẵn dữ liệu nhịp tim, nhưng PassiveClient không bao gồm thông tin về tình trạng còn hàng.

Kiểu dữ liệu

Chỉ số Dữ liệu dự kiến Ghi chú
HEART_RATE_BPM Nhịp/phút [Loại dữ liệu: Double (Kép)] Cũng bao gồm tình trạng có sẵn

Tính năng được hỗ trợ

Ngoài các Loại dữ liệu tập thể dục và Loại dữ liệu giám sát thụ động, các thiết bị còn hỗ trợ tính năng bổ sung để kích hoạt những sự kiện như bắt đầu một bài tập và đo lường trạng thái, chẳng hạn như ngủ và thức. Một số tính năng này có trên tất cả các thiết bị, trong khi những tính năng khác chỉ có trên một số thiết bị.

Trình kích hoạt sự kiện

Tất cả thiết bị đều hỗ trợ các trình kích hoạt phổ biến sau:

  • Mục tiêu hằng ngày về quãng đường và số bước
  • Mục tiêu tập thể dục về số bước, quãng đường và thời lượng.

Các thiết bị khác có thể hỗ trợ trình kích hoạt sự kiện nâng cao hơn. Sau đây là một số ví dụ:

  • Đếm số vòng khi bơi
  • Mục tiêu tập thể dục để đốt cháy calo
  • Mục tiêu tập thể dục để đạt được tốc độ tức thời

Các trạng thái

Tất cả các thiết bị đều hỗ trợ chức năng trạng thái cơ bản. Chức năng trạng thái cho biết người dùng hiện có đang tập thể dục hay không

Các thiết bị khác có thể cung cấp chức năng bổ sung của trạng thái. Một số chức năng bổ sung của trạng thái bao gồm phát hiện xem một bài tập có tự động tạm dừng hoặc tự động tiếp tục hay không, hay khi người dùng thức hoặc ngủ.

Cảnh báo về sức khoẻ trong tính năng giám sát thụ động

Một số thiết bị có hỗ trợ cảnh báo về sức khoẻ. Không phải thiết bị nào cũng hỗ trợ các tính năng này. Một số cảnh báo về sức khoẻ như phát hiện nhịp tim bất thường hoặc phát hiện cú ngã.