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. Báo cáo này cũng xét đến cách đo lường các loại dữ liệu khác nhau. Các loại dữ liệu này bao gồm kết quả đo nhịp tim tức thì, số bước được tính theo thời gian và dữ liệu giấc ngủ được tính 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 lại các loại dữ liệu trước khi có thể hoàn tất các yêu cầu.

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 và bơi.
  • 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 và tỷ lệ trao đổi chất cơ bản của người dùng.
  • 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 nhiều trường không bắt buộc, chẳng hạn 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 chung như timezoneOffset hoặc cụ thể như title, countpercentage. Một số trường sử dụng các loại đơn giản (chẳng hạn như long, double hoặc string), trong khi các trường khác sử dụng các loại phức tạp như enum và lớp như InstantZoneOffset. Các 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ỉ có thể đọc và một số thuộc tính được cố định trong 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à các trường của chúng, 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. Điều này rất hữu ích cho các thao tác đọc và ghi chuẩn. Hãy xem phần 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 mục này vào 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. Thông tin này chứa tên gói của nguồn gốc mà tại đó mục này được tự động thêm vào khi tạo.
  • Thiết bị: Health Connect lưu trữ thông tin về thiết bị cung cấp dữ liệu. Giá trị 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à đồ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 của ứ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 thức ghi: Health Connect giúp bạn hiểu cách ghi dữ liệu. Các phương thức này bao gồm ứ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 chỉ định giá trị nhận dạng duy nhất (UID) cho các đối tượng dữ liệu mới được chèn. Giá trị này giúp xác định các đối tượng dữ liệu và phân biệt các đối tượng dữ liệu này 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. Ứng dụng khách gán Mã ứng dụng khách, trong khi Health Connect chỉ định riêng Mã Health Connect.

Lưu ý những ghi chú 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, 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 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ụ: bạn 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 chỉ định 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 giờ tiêu chuẩn. 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, 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 chênh lệch múi giờ dựa trên múi giờ mặc định của hệ thống trên 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 chênh lệch múi giờ nào. Bạn phải tránh đ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, việc 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 thông tin về 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 toàn bộ liên kết giữa các loại dữ liệu và quyền của các loại dữ liệu đó trong các bảng sau đây.

Đố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
PlannedExercise android.permission.health.READ_PLANNED_EXERCISE
android.permission.health.WRITE_PLANNED_EXERCISE
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
SkinTemperature androidx.health.permission.SkinTemperature.READ
androidx.health.permission.SkinTemperature.WRITE
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
Steps 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
Steps 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 lại các loại dữ liệu và quyền của bạn

Giờ đây, khi đã lên kế hoạch cho các loại dữ liệu và quyền, bạn có thể triển khai các loại dữ liệu và quyền đó 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 các loại dữ liệu và quyền mà ứng dụng của bạn yêu cầu. Điều này cho phép bạn khai báo chính xác hoạt động sử dụng dữ liệu của ứng dụng.

Khi bạn chuẩn bị phát hành ứng dụng lên Cửa hàng Play, hãy khai báo quyền truy cập vào các loại dữ liệu Health Connect mà ứng dụng của bạn sử dụng. Nếu không, người dùng có thể thấy thông báo lỗi cho biết ứng dụng của bạn không thể truy cập vào các loại dữ liệu Health Connect vì các loại dữ liệu này yêu cầu phê duyệt đặc biệt.