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")
}

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.