Lập kế hoạch và xem xét các loại dữ liệu Health Connect

Health Connect lưu trữ và sắp xếp dữ liệu về sức khoẻ lẫn hoạt động thể chất. Mẫu này cũng tính đến cách đo lường các loại dữ liệu. Các loại dữ liệu này bao gồm kết quả đo nhịp tim ngay lập tức, số bước theo thời gian và dữ liệu giấc ngủ được lấy trong các phiên.

Trước tiên, bạn cần hiểu rõ các loại dữ liệu và quyền mà Health Connect cung cấp để có thể lên kế hoạch cho các yêu cầu của ứng dụng. Do đó, bạn cần xem xét loại dữ liệu của mình trước khi có thể hoàn tất các yêu cầu của mình.

Danh mục loại dữ liệu

Health Connect hỗ trợ các loại dữ liệu được dùng trên hầu hết các ứng dụng về sức khoẻ và thể chất để cung cấp nhiều loại dữ liệu nhất có thể. Mục đích của Health Connect là cung cấp bộ nhớ lưu trữ và một cái nhìn toàn diện về dữ liệu sức khoẻ cũng như thể chất. Các loại dữ liệu này thuộc các danh mục sau:

  • Hoạt động: Mục này ghi lại mọi hoạt động người dùng thực hiện. Dữ liệu này có thể bao gồm các hoạt động về sức khoẻ và thể chất như chạy, bơi và ngủ.
  • Số đo cơ thể: Mục này thu thập dữ liệu phổ biến liên quan đến cơ thể, chẳng hạn như cân nặng của người dùng và tỷ lệ trao đổi chất cơ bản của họ.
  • Theo dõi chu kỳ kinh nguyệt: Mục này ghi lại chu kỳ kinh nguyệt và các dữ liệu liên quan, chẳng hạn như kết quả nhị phân của xét nghiệm rụng trứng.
  • Dinh dưỡng: Mục này thu thập các loại dữ liệu về lượng nước và dinh dưỡng. Dữ liệu lượng nước thể hiện lượng nước một người dùng tiêu thụ trong một lần uống. Dữ liệu dinh dưỡng bao gồm các trường không bắt buộc như lượng calo, đường và magiê.
  • Dữ liệu giấc ngủ: Mục này thu thập dữ liệu khoảng thời gian liên quan đến thời lượng và kiểu ngủ của người dùng.
  • Chỉ số sức khoẻ: Mục này thu thập thông tin thiết yếu về sức khoẻ tổng thể của người dùng. Dữ liệu này bao gồm dữ liệu như nhiệt độ cơ thể, đường huyết, huyết áp và độ bão hoà oxy trong máu.

Định dạng loại dữ liệu

Các loại dữ liệu trong Health Connect được lưu trữ trong các đối tượng là lớp con của Record.

Đối với mỗi loại dữ liệu, có các trường liên kết thuộc dạng chung chung, chẳng hạn như timezoneOffset, hoặc các trường cụ thể như title, countpercentage. Một số trường sử dụng các kiểu đơn giản (chẳng hạn như long (dài), double (đôi) hoặc chuỗi (string) trong khi một số khác sử dụng các kiểu phức tạp như giá trị enum và các lớp (class) như InstantZoneOffset. Thuộc tính của các trường này có thể là bắt buộc hoặc không bắt buộc. Một số thuộc tính ở chế độ chỉ có thể đọc, và một số thuộc tính được gắn với một phạm vi giá trị cụ thể.

Để xem danh sách đầy đủ các loại dữ liệu có sẵn và trường của các loại đó, hãy tham khảo các lớp trong Jetpack.

Thuộc tính dữ liệu bổ sung

Dữ liệu trong API Health Connect cũng bao gồm các thuộc tính siêu dữ liệu được mô tả trong danh sách sau đây:

  • Mã nhận dạng trên Health Connect: Mỗi điểm dữ liệu được gán một mã nhận dạng duy nhất (UID) khi được tạo. Thao tác này rất hữu ích cho các thao tác đọc và ghi tiêu chuẩn. Hãy xem bài viết Mã nhận dạng Health Connect để biết thêm thông tin chi tiết.
  • Thời gian sửa đổi gần đây nhất: Mục này đánh dấu dấu thời gian của bản sao sau cùng mà một bản ghi có nội dung cập nhật. Hệ thống sẽ tự động tạo bản ghi này trong lần tạo bản ghi đầu tiên hoặc vào mỗi lần cập nhật.
  • Nguồn gốc dữ liệu: Health Connect lưu trữ thông tin về ứng dụng cung cấp dữ liệu. Tệp này chứa tên gói của nguồn gốc đó và được tự động thêm khi tạo.
  • Thiết bị: Health Connect lưu trữ thông tin về thiết bị cung cấp dữ liệu. Tệp này chứa nhà sản xuất và kiểu máy của thiết bị mà bạn cung cấp giá trị theo cách thủ công.
  • Mã ứng dụng khách: Health Connect cung cấp Mã ứng dụng khách để các ứng dụng khách có thể tham chiếu đến dữ liệu bằng mã của riêng chúng, giúp giải quyết xung đột và giúp đồng bộ hoá dễ dàng hơn. Giá trị này được cung cấp cho bản ghi theo cách thủ công.
  • Phiên bản bản ghi ứng dụng: Cùng với mã ứng dụng khách, Health Connect cung cấp phiên bản để giúp theo dõi các thay đổi trong quá trình đồng bộ hoá dữ liệu. Giá trị này được cung cấp cho bản ghi theo cách thủ công.
  • Phương pháp ghi: Health Connect giúp bạn hiểu được cách dữ liệu được ghi lại. Các phương thức này bao gồm các ứng dụng ghi lại dữ liệu một cách thụ động (tự động) và người dùng ghi lại dữ liệu một cách chủ động hoặc thủ công.

Mã nhận dạng Health Connect

Health Connect gán giá trị nhận dạng duy nhất (UID) cho các đối tượng dữ liệu mới được chèn. Việc này giúp xác định đối tượng dữ liệu và phân biệt chúng với các đối tượng khác. Mã nhận dạng Health Connect rất hữu ích trong các yêu cầu đọc hoặc ghi. Mã nhận dạng Health Connect không giống với Mã ứng dụng khách. Một ứng dụng khách chỉ định Mã ứng dụng khách, trong khi Health Connect chỉ định riêng Mã nhận dạng Health Connect.

Lưu ý những lưu ý sau đây khi làm việc với mã nhận dạng Health Connect:

  • Phiên hoạt động có một mã nhận dạng Health Connect duy nhất, nhưng dữ liệu trong các phiên đó có mã nhận dạng Health Connect riêng.
  • Mã nhận dạng của Health Connect không gắn liền hoặc liên quan đến dấu thời gian.
  • Một số trường hợp sử dụng có thể yêu cầu lưu trữ một mã Health Connect cụ thể trong quy trình làm việc. Ví dụ: cần có một mã nhận dạng cụ thể để truy xuất và hiển thị cho người dùng mục dữ liệu mà họ vừa ghi lại.

Thời gian trong Health Connect

Tất cả dữ liệu được ghi vào Health Connect phải nêu rõ thông tin về chênh lệch múi giờ. Việc chỉ định chênh lệch múi giờ cho phép các ứng dụng đọc dữ liệu để biểu thị dữ liệu đó theo thời gian thực. Giờ tiêu chuẩn là thời gian theo múi giờ địa phương và liên quan đến người dùng, không nhất thiết phải là Giờ phối hợp quốc tế (UTC).

Trong một số ít trường hợp, sự chênh lệch múi giờ có thể không được áp dụng. Khi điều này xảy ra trong Android 14 (API cấp 34), Health Connect sẽ đặt độ lệch múi giờ dựa trên múi giờ mặc định của hệ thống của thiết bị. Trong các phiên bản Android 13 trở xuống (API cấp 33 trở xuống), bạn có thể ghi vào Health Connect mà không cần chỉ định bất kỳ thông tin nào về chênh lệch múi giờ. Bạn phải tránh thực hiện điều này bất cứ khi nào có thể.

Cài đặt giờ và múi giờ

Việc nêu rõ thông tin về chênh lệch múi giờ trong quá trình ghi dữ liệu sẽ cung cấp thông tin về múi giờ khi đọc dữ liệu trong Health Connect. Tuy nhiên, tính năng này có thể không thực hiện được trong một số trường hợp, chẳng hạn như khi bạn không cung cấp chênh lệch múi giờ. Ứng dụng của bạn cần được chuẩn bị để xử lý cả hai loại dữ liệu theo cách phù hợp cho các trường hợp cụ thể.

Quyền

Trước khi yêu cầu quyền, ứng dụng phải khai báo trước các quyền đó trong tệp kê khai. Hãy xem các bảng sau đây để biết cách liên kết đầy đủ các loại dữ liệu và quyền của các loại dữ liệu đó.

Đối với phiên bản 1.0.0-alpha10 trở lên

Kiểu lớp bản ghi Khai báo quyền đọc và ghi thông tin
ActiveCaloriesBurned android.permission.health.READ_ACTIVE_CALORIES_BURNED
android.permission.health.WRITE_ACTIVE_CALORIES_BURNED
BasalBodyTemperature android.permission.health.READ_BASAL_BODY_TEMPERATURE
android.permission.health.WRITE_BASAL_BODY_TEMPERATURE
BasalMetabolicRate android.permission.health.READ_BASAL_METABOLIC_RATE
android.permission.health.WRITE_BASAL_METABOLIC_RATE
BloodGlucose android.permission.health.READ_BLOOD_GLUCOSE
android.permission.health.WRITE_BLOOD_GLUCOSE
BloodPressure android.permission.health.READ_BLOOD_PRESSURE
android.permission.health.WRITE_BLOOD_PRESSURE
BodyFat android.permission.health.READ_BODY_FAT
android.permission.health.WRITE_BODY_FAT
BodyTemperature android.permission.health.READ_BODY_TEMPERATURE
android.permission.health.WRITE_BODY_TEMPERATURE
BodyWaterMass android.permission.health.READ_BODY_WATER_MASS
android.permission.health.WRITE_BODY_WATER_MASS
BoneMass android.permission.health.READ_BONE_MASS
android.permission.health.WRITE_BONE_MASS
CervicalMucus android.permission.health.READ_CERVICAL_MUCUS
android.permission.health.WRITE_CERVICAL_MUCUS
CyclingPedalingCadence android.permission.health.READ_EXERCISE
android.permission.health.WRITE_EXERCISE
Distance android.permission.health.READ_DISTANCE
android.permission.health.WRITE_DISTANCE
ElevationGained android.permission.health.READ_ELEVATION_GAINED
android.permission.health.WRITE_ELEVATION_GAINED
ExerciseSession android.permission.health.READ_EXERCISE
android.permission.health.WRITE_EXERCISE
FloorsClimbed android.permission.health.READ_FLOORS_CLIMBED
android.permission.health.WRITE_FLOORS_CLIMBED
HeartRate android.permission.health.READ_HEART_RATE
android.permission.health.WRITE_HEART_RATE
HeartRateVariabilityRmssd android.permission.health.READ_HEART_RATE_VARIABILITY
android.permission.health.WRITE_HEART_RATE_VARIABILITY
Height android.permission.health.READ_HEIGHT
android.permission.health.WRITE_HEIGHT
Hydration android.permission.health.READ_HYDRATION
android.permission.health.WRITE_HYDRATION
IntermenstrualBleeding android.permission.health.READ_INTERMENSTRUAL_BLEEDING
android.permission.health.WRITE_INTERMENSTRUAL_BLEEDING
LeanBodyMass android.permission.health.READ_LEAN_BODY_MASS
android.permission.health.WRITE_LEAN_BODY_MASS
MenstruationFlow android.permission.health.READ_MENSTRUATION
android.permission.health.WRITE_MENSTRUATION
MenstruationPeriod android.permission.health.READ_MENSTRUATION
android.permission.health.WRITE_MENSTRUATION
Nutrition android.permission.health.READ_NUTRITION
android.permission.health.WRITE_NUTRITION
OvulationTest android.permission.health.READ_OVULATION_TEST
android.permission.health.WRITE_OVULATION_TEST
OxygenSaturation android.permission.health.READ_OXYGEN_SATURATION
android.permission.health.WRITE_OXYGEN_SATURATION
Power android.permission.health.READ_POWER
android.permission.health.WRITE_POWER
RespiratoryRate android.permission.health.READ_RESPIRATORY_RATE
android.permission.health.WRITE_RESPIRATORY_RATE
RestingHeartRate android.permission.health.READ_RESTING_HEART_RATE
android.permission.health.WRITE_RESTING_HEART_RATE
SexualActivity android.permission.health.READ_SEXUAL_ACTIVITY
android.permission.health.WRITE_SEXUAL_ACTIVITY
SleepSession android.permission.health.READ_SLEEP
android.permission.health.WRITE_SLEEP
Speed android.permission.health.READ_SPEED
android.permission.health.WRITE_SPEED
StepsCadence android.permission.health.READ_STEPS
android.permission.health.WRITE_STEPS
Các bước android.permission.health.READ_STEPS
android.permission.health.WRITE_STEPS
TotalCaloriesBurned android.permission.health.READ_TOTAL_CALORIES_BURNED
android.permission.health.WRITE_TOTAL_CALORIES_BURNED
Vo2Max android.permission.health.READ_VO2_MAX
android.permission.health.WRITE_VO2_MAX
Weight android.permission.health.READ_WEIGHT
android.permission.health.WRITE_WEIGHT
WheelchairPushes android.permission.health.READ_WHEELCHAIR_PUSHES
android.permission.health.WRITE_WHEELCHAIR_PUSHES

Đối với phiên bản 1.0.0-alpha09 trở xuống

Kiểu lớp bản ghi Khai báo quyền đọc và ghi thông tin
ActiveCaloriesBurned androidx.health.permission.ActiveCaloriesBurned.READ
androidx.health.permission.ActiveCaloriesBurned.WRITE
BasalBodyTemperature androidx.health.permission.BasalBodyTemperature.READ
androidx.health.permission.BasalBodyTemperature.WRITE
BasalMetabolicRate androidx.health.permission.BasalMetabolicRate.READ
androidx.health.permission.BasalMetabolicRate.WRITE
BloodGlucose androidx.health.permission.BloodGlucose.READ
androidx.health.permission.BloodGlucose.WRITE
BloodPressure androidx.health.permission.BloodPressure.READ
androidx.health.permission.BloodPressure.WRITE
BodyFat androidx.health.permission.BodyFat.READ
androidx.health.permission.BodyFat.WRITE
BodyTemperature androidx.health.permission.BodyTemperature.READ
androidx.health.permission.BodyTemperature.WRITE
BodyWaterMass androidx.health.permission.BodyWaterMass.READ
androidx.health.permission.BodyWaterMass.WRITE
BoneMass androidx.health.permission.BoneMass.READ
androidx.health.permission.BoneMass.WRITE
CervicalMucus androidx.health.permission.CervicalMucus.READ
androidx.health.permission.CervicalMucus.WRITE
CyclingPedalingCadence androidx.health.permission.CyclingPedalingCadence.READ
androidx.health.permission.CyclingPedalingCadence.WRITE
Distance androidx.health.permission.Distance.READ
androidx.health.permission.Distance.WRITE
ElevationGained androidx.health.permission.ElevationGained.READ
androidx.health.permission.ElevationGained.WRITE
ExerciseSession androidx.health.permission.ExerciseSession.READ
androidx.health.permission.ExerciseSession.WRITE
FloorsClimbed androidx.health.permission.FloorsClimbed.READ
androidx.health.permission.FloorsClimbed.WRITE
HeartRate androidx.health.permission.HeartRate.READ
androidx.health.permission.HeartRate.WRITE
HeartRateVariabilityRmssd androidx.health.permission.HeartRateVariabilityRmssd.READ
androidx.health.permission.HeartRateVariabilityRmssd.WRITE
Height androidx.health.permission.Height.READ
androidx.health.permission.Height.WRITE
Hydration androidx.health.permission.Hydration.READ
androidx.health.permission.Hydration.WRITE
IntermenstrualBleeding androidx.health.permission.IntermenstrualBleeding.READ
androidx.health.permission.IntermenstrualBleeding.WRITE
LeanBodyMass androidx.health.permission.LeanBodyMass.READ
androidx.health.permission.LeanBodyMass.WRITE
MenstruationFlow androidx.health.permission.MenstruationFlow.READ
androidx.health.permission.MenstruationFlow.WRITE
Nutrition androidx.health.permission.Nutrition.READ
androidx.health.permission.Nutrition.WRITE
OvulationTest androidx.health.permission.OvulationTest.READ
androidx.health.permission.OvulationTest.WRITE
OxygenSaturation androidx.health.permission.OxygenSaturation.READ
androidx.health.permission.OxygenSaturation.WRITE
Power androidx.health.permission.Power.READ
androidx.health.permission.Power.WRITE
RespiratoryRate androidx.health.permission.RespiratoryRate.READ
androidx.health.permission.RespiratoryRate.WRITE
RestingHeartRate androidx.health.permission.RestingHeartRate.READ
androidx.health.permission.RestingHeartRate.WRITE
SexualActivity androidx.health.permission.SexualActivity.READ
androidx.health.permission.SexualActivity.WRITE
SleepSession androidx.health.permission.SleepSession.READ
androidx.health.permission.SleepSession.WRITE
Speed androidx.health.permission.Speed.READ
androidx.health.permission.Speed.WRITE
StepsCadence androidx.health.permission.StepsCadence.READ
androidx.health.permission.StepsCadence.WRITE
Các bước androidx.health.permission.Steps.READ
androidx.health.permission.Steps.WRITE
TotalCaloriesBurned androidx.health.permission.TotalCaloriesBurned.READ
androidx.health.permission.TotalCaloriesBurned.WRITE
Vo2Max androidx.health.permission.Vo2Max.READ
androidx.health.permission.Vo2Max.WRITE
Weight androidx.health.permission.Weight.READ
androidx.health.permission.Weight.WRITE
WheelchairPushes androidx.health.permission.WheelchairPushes.READ
androidx.health.permission.WheelchairPushes.WRITE

Xem xét các loại dữ liệu và quyền của bạn

Hiện bạn đã có kế hoạch về các loại dữ liệu và quyền, bạn có thể triển khai các quyền và loại dữ liệu đó trong quá trình phát triển.

Khi xem xét ứng dụng trước khi tải lên Cửa hàng Play, hãy kiểm tra kỹ danh sách loại dữ liệu và quyền mà ứng dụng yêu cầu. Điều này cho phép bạn khai báo hoạt động sử dụng dữ liệu của ứng dụng chính xác.

Sau khi phát hành ứng dụng lên Cửa hàng Play, có thể bạn sẽ nhận được thông báo lỗi về việc ứng dụng của bạn không truy cập được vào các loại dữ liệu Health Connect vì các loại dữ liệu đó cần được phê duyệt đặc biệt. Trong trường hợp đó, bạn cần yêu cầu quyền truy cập vào loại dữ liệu thông qua Biểu mẫu khai báo dành cho nhà phát triển. Để tìm hiểu thêm về quy trình này, hãy xem phần Yêu cầu quyền truy cập vào các loại dữ liệu Health Connect.