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. Ứng dụng 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 được thực hiện ngay lập tức, số bước được thực hiện theo thời gian và dữ liệu giấc ngủ được ghi lại trong các phiên hoạt động.
Trước tiên, bạn cần hiểu rõ những 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 các kiểu 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 đã uống 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, sẽ có các trường được liên kết, có thể là trường chung (chẳng hạn như time
và zoneOffset
) hoặc trường cụ thể (chẳng hạn như title
, count
và percentage
).
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ư liệt kê và các lớp như Instant
và ZoneOffset
. Các thuộc tính của những 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 và một số thuộc tính được giới hạn 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 tương ứ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 đó, đượ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 pháp ghi: Health Connect giúp bạn hiểu cách dữ liệu được ghi. Các phương thức này bao gồm ứng dụng ghi dữ liệu một cách thụ động (tự động) và người dùng ghi 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. UID này xác định các đố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 gán Mã ứng dụng khách, trong khi Health Connect gán riêng Mã Health Connect.
Lưu ý những điề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 duy nhất trong Health Connect, nhưng dữ liệu trong các phiên đó có mã nhận dạng riêng trong Health Connect.
- 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ã nhận dạng 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à cho người dùng thấy 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 đều 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 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, 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 trên thiết bị. Trong Android 13 trở xuống (API cấp 33 trở xuống), bạn có thể ghi dữ liệu vào Health Connect mà không cần chỉ định thông tin về chênh lệch múi giờ. 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ộ mối liên kết giữa các loại dữ liệu và quyền tương ứng trong các bảng sau đây.
Đối với phiên bản 1.0.0-alpha10 trở lên
Thông tin tham khảo về quyền | Khai báo quyền đọc |
---|---|
Đọc dữ liệu ở chế độ nền |
android.permission.health.READ_HEALTH_DATA_IN_BACKGROUND
|
Đọc nhật ký |
android.permission.health.READ_HEALTH_DATA_HISTORY
|
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.READ_EXERCISE_ROUTE android.permission.health.WRITE_EXERCISE android.permission.health.WRITE_EXERCISE_ROUTE Loại bài tậpEXERCISE_TYPE_BIKING EXERCISE_TYPE_BIKING_HAND EXERCISE_TYPE_BIKING_MOUNTAIN EXERCISE_TYPE_BIKING_ROAD EXERCISE_TYPE_BIKING_SPINNING EXERCISE_TYPE_BIKING_STATIONARY EXERCISE_TYPE_BIKING_UTURN EXERCISE_TYPE_CANOEING EXERCISE_TYPE_CROSSFIT EXERCISE_TYPE_DANCING EXERCISE_TYPE_ELLIPTICAL EXERCISE_TYPE_GOLF EXERCISE_TYPE_HORSEBACK_RIDING EXERCISE_TYPE_KAYAKING EXERCISE_TYPE_KICKBOXING EXERCISE_TYPE_MARTIAL_ARTS EXERCISE_TYPE_PILATES EXERCISE_TYPE_ROLLERBLADING EXERCISE_TYPE_RUNNING EXERCISE_TYPE_RUNNING_JOGGING EXERCISE_TYPE_RUNNING_SAND |
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 |
MindfulnessSession |
android.permission.health.READ_MINDFULNESS android.permission.health.WRITE_MINDFULNESS |
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 |
PlannedExerciseSession |
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 |
android.permission.health.READ_SKIN_TEMPERATURE android.permission.health.WRITE_SKIN_TEMPERATURE |
SleepSession |
android.permission.health.READ_SLEEP android.permission.health.WRITE_SLEEP |
Speed |
android.permission.health.READ_SPEED android.permission.health.WRITE_SPEED |
Các bước |
android.permission.health.READ_STEPS android.permission.health.WRITE_STEPS |
StepsCadence |
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.Exercise.READ androidx.health.permission.Exercise.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 Loại bài tậpEXERCISE_TYPE_BIKING EXERCISE_TYPE_BIKING_HAND EXERCISE_TYPE_BIKING_MOUNTAIN EXERCISE_TYPE_BIKING_ROAD EXERCISE_TYPE_BIKING_SPINNING EXERCISE_TYPE_BIKING_STATIONARY EXERCISE_TYPE_BIKING_UTURN EXERCISE_TYPE_CANOEING EXERCISE_TYPE_CROSSFIT EXERCISE_TYPE_DANCING EXERCISE_TYPE_ELLIPTICAL EXERCISE_TYPE_GOLF EXERCISE_TYPE_HORSEBACK_RIDING EXERCISE_TYPE_KAYAKING EXERCISE_TYPE_KICKBOXING EXERCISE_TYPE_MARTIAL_ARTS EXERCISE_TYPE_PILATES EXERCISE_TYPE_ROLLERBLADING EXERCISE_TYPE_RUNNING EXERCISE_TYPE_RUNNING_JOGGING EXERCISE_TYPE_RUNNING_SAND |
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.HeartRateVariability.READ androidx.health.permission.HeartRateVariability.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.Menstruation.READ androidx.health.permission.Menstruation.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 |
PlannedExerciseSession |
androidx.health.permission.PlannedExerciseSession.READ androidx.health.permission.PlannedExerciseSession.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 |
Các bước |
androidx.health.permission.Steps.READ androidx.health.permission.Steps.WRITE |
StepsCadence |
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
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 chúng trong quá trình phát triển.
Khi xem xét ứng dụng trước khi tải ứng dụng 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. Nhờ đó, bạn có thể khai báo chính xác hoạt động sử dụng dữ liệu của ứng dụng.
Khi chuẩn bị xuất bản ứ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 của Health Connect mà ứng dụng của bạn sử dụng. Nếu không, người dùng có thể nhận được 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ần có sự phê duyệt đặc biệt.