Kiểm tra phạm vi cung cấp tính năng

Khi các tính năng mới được thêm vào Health Connect, người dùng có thể không phải lúc nào cũng cập nhật phiên bản Health Connect của họ. Feature Availability API là một cách để kiểm tra xem một tính năng trong Health Connect có trên thiết bị của người dùng hay không và quyết định hành động cần thực hiện.

Bắt đầu

Feature Availability API có cùng một phần phụ thuộc với Health Connect SDK. Để bắt đầu, hãy xác minh rằng ít nhất phiên bản 1.1.0-alpha08 có trong tệp build.gradle của bạn:

dependencies {
  implementation("androidx.health.connect:connect-client:1.1.0-alpha08")
}

Cờ tính năng

Các cờ tính năng có sẵn cho Health Connect được liệt kê trong bảng sau. Người dùng sẽ không thể sử dụng chức năng đằng sau một cờ tính năng nếu thiết bị của họ không hỗ trợ tính năng đó.

Bảng: Cờ cho các tính năng của Health Connect
Cờ tính năng Loại dữ liệu Hướng dẫn liên quan
FEATURE_ACTIVITY_INTENSITY Dữ liệu về cường độ hoạt động
FEATURE_EXTENDED_DEVICE_TYPES Các loại thiết bị mở rộng Yêu cầu về siêu dữ liệu
FEATURE_PERSONAL_HEALTH_RECORD Bệnh án Định dạng dữ liệu Hồ sơ y tế
Ghi dữ liệu y tế
Đọc dữ liệu y tế
FEATURE_MINDFULNESS_SESSION Chánh niệm Theo dõi chánh niệm
FEATURE_PLANNED_EXERCISE Bài tập theo kế hoạch Kế hoạch tập luyện
FEATURE_READ_HEALTH_DATA_IN_BACKGROUND Đọc dữ liệu ở chế độ nền Ví dụ về hoạt động đọc ở chế độ nền
FEATURE_READ_HEALTH_DATA_HISTORY Đọc dữ liệu trước đây Đọc dữ liệu cũ hơn 30 ngày
FEATURE_SKIN_TEMPERATURE Nhiệt độ trên da Đo nhiệt độ trên da

Thực hiện quy trình kiểm tra

Hàm chính để kiểm tra phạm vi cung cấp của tính năng là getFeatureStatus(). Thao tác này trả về các hằng số nguyên FEATURE_STATUS_AVAILABLE hoặc FEATURE_STATUS_UNAVAILABLE:

Để xác định xem thiết bị của người dùng có hỗ trợ tính năng Đọc dữ liệu sức khoẻ ở chế độ nền trên Health Connect hay không, hãy kiểm tra trạng thái của FEATURE_READ_HEALTH_DATA_IN_BACKGROUND trên ứng dụng khách:

if (healthConnectClient
     .features
     .getFeatureStatus(
       HealthConnectFeatures.FEATURE_READ_HEALTH_DATA_IN_BACKGROUND
     ) == HealthConnectFeatures.FEATURE_STATUS_AVAILABLE) {

  // Feature is available
} else {
  // Feature isn't available
}

Để xem danh sách tất cả các cờ tính năng có sẵn, hãy xem trang tham chiếu HealthConnectFeatures.

Xử lý trường hợp thiếu tính năng

Nếu một tính năng không có trên thiết bị của người dùng, thì bản cập nhật có thể bật tính năng đó. Bạn có thể cân nhắc hướng dẫn người dùng cập nhật Health Connect nếu họ không có phiên bản được hỗ trợ mới nhất trên thiết bị của mình. Tuy nhiên, người dùng sử dụng APK (trên Android 13 trở xuống) không thể dùng các tính năng của mô-đun hệ thống chỉ có trên các thiết bị chạy Android 14 trở lên.

Đối với các loại thiết bị mở rộng, nếu FEATURE_EXTENDED_DEVICE_TYPES không có trên thiết bị của người dùng, thì những giá trị đó sẽ được coi là Device.TYPE_UNKNOWN. Cung cấp một phương án dự phòng hợp lý trong logic ghi và giao diện người dùng.