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ư time
và zoneOffset
, hoặc các trường cụ thể như title
, count
và percentage
.
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ư Instant
và ZoneOffset
. 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.