אפליקציית Health Connect מאחסנת ומארגנת נתוני בריאות וכושר. הוא גם מתייחס לאופן המדידה של סוגי נתונים שונים. סוגי הנתונים האלה כוללים מדידות של הדופק שנלקחות באופן מיידי, מספר הצעדים שנמדד לאורך זמן ונתוני שינה שנמדדים בסשנים.
חשוב להבין קודם אילו סוגי נתונים והרשאות זמינים ב-Health Connect כדי שתוכלו לתכנן את הדרישות של האפליקציה. לכן, צריך לבדוק את סוגי הנתונים לפני שקובעים את הדרישות.
קטגוריות של סוגי נתונים
אפליקציית Health Connect תומכת בסוגי נתונים שמשמשים את רוב אפליקציות הבריאות והכושר, כדי לספק מגוון רחב ככל האפשר. המטרה של Health Connect היא לספק תצוגה מקיפה של נתוני הבריאות והכושר ולאחסן אותם. סוגי הנתונים האלה נכללים בקטגוריות הבאות:
- פעילות: כאן מתועדת כל פעילות שהמשתמש מבצע. היא יכולה לכלול פעילויות שקשורות לבריאות ולכושר, כמו ריצה ושחייה.
- מדידות גוף: כאן נאספים נתונים נפוצים שקשורים לגוף, כמו משקל המשתמש וקצב חילוף החומרים הבסיסי שלו.
- מעקב אחר המחזור: כאן נרשמים מחזורי הווסת ונקודות נתונים שקשורות אליהם, כמו תוצאה בינארית של בדיקת ביוץ.
- תזונה: כאן מתועדים סוגי נתונים שקשורים למאזן הנוזלים ולתזונה. המדד הראשון מייצג את כמות המים שמשתמש צורך במשקה אחד. האחרון כולל שדות אופציונליים כמו קלוריות, סוכר ומגנזיום.
- שינה: נתונים על משך השינה וסוג השינה של המשתמש.
- נתונים חיוניים: כאן נשמר מידע חיוני על המצב הבריאותי הכללי של המשתמש. הוא כולל נתונים כמו חום גוף, סוכר בדם, לחץ דם ורמת החמצן בדם.
פורמט סוג הנתונים
סוגי הנתונים ב-Health Connect מאוחסנים באובייקטים שהם מחלקות משנה של Record
.
לכל סוג נתונים יש שדות משויכים שהם כלליים, כמו time
ו-zoneOffset
, או ספציפיים, כמו title
, count
ו-percentage
.
חלק מהשדות משתמשים בסוגים פשוטים – כמו long, double או string – ואחרים משתמשים בסוגים מורכבים כמו מנייה (enumeration) ומחלקות כמו Instant
ו-ZoneOffset
. המאפיינים של השדות האלה יכולים להיות מאפייני חובה או מאפיינים אופציונליים. חלק מהמאפיינים הם לקריאה בלבד, וחלק מהמאפיינים מוגבלים לטווח ערכים ספציפי.
רשימה מלאה של סוגי הנתונים הזמינים והשדות שלהם מופיעה בכיתות ב-Jetpack.
מאפייני נתונים נוספים
הנתונים ב-Health Connect API כוללים גם מאפייני מטא-נתונים שמתוארים ברשימה הבאה:
- מזהה Health Connect: לכל נקודת נתונים מוקצה מזהה ייחודי (UID) בזמן היצירה. האפשרות הזו שימושית לפעולות קריאה וכתיבה רגילות. פרטים נוספים זמינים במאמר בנושא מזהה Health Connect.
- זמן השינוי האחרון: חותמת הזמן של המופע האחרון שבו רשומה עודכנה. הוא נוצר באופן אוטומטי בפעם הראשונה שיוצרים את הרשומה או בכל עדכון.
- מקור הנתונים: ב-Health Connect מאוחסן מידע על האפליקציה שממנה הגיעו הנתונים. הוא מכיל את שם החבילה של המקור הזה, שנוסף באופן אוטומטי בזמן היצירה.
- מכשיר: אפליקציית Health Connect שומרת מידע על המכשיר שממנו הגיעו הנתונים. הוא מכיל את היצרן והדגם של המכשיר, ואתם צריכים לספק את הערך באופן ידני.
- מזהה לקוח: Health Connect מספק מזהי לקוח כדי שאפליקציות לקוח יוכלו להפנות לנתונים באמצעות המזהים שלהן. כך קל יותר לפתור בעיות בסנכרון. הערך הזה מסופק לרשומה באופן ידני.
- גרסת רשומת הלקוח: בנוסף ל-Client ID, Health Connect מספקת גרסאות כדי לעזור לעקוב אחרי שינויים במהלך סנכרון הנתונים. הערך הזה מסופק לרשומה באופן ידני.
- שיטת התיעוד: אפליקציית Health Connect מאפשרת לכם להבין איך הנתונים מתועדים. השיטות האלה כוללות אפליקציות שמקליטות נתונים באופן פסיבי (אוטומטי), ומשתמשים שמקליטים נתונים באופן אקטיבי או ידני.
מזהה Health Connect
Health Connect מקצה מזהים ייחודיים (UID) לאובייקטים של נתונים שנוספו לאחרונה, כדי לזהות את האובייקטים של הנתונים ולהבחין ביניהם לבין אובייקטים אחרים. מזהים של Health Connect שימושיים בבקשות קריאה או כתיבה. המזהים ב-Health Connect לא זהים למזהי לקוח. אפליקציית לקוח מקצה מזהי לקוח, ואילו Health Connect מקצה רק מזהי Health Connect.
חשוב לזכור את ההערות הבאות כשעובדים עם מזהים ב-Health Connect:
- לכל סשן יש מזהה Health Connect אחד, אבל לנתונים בתוך הסשן יש מזהים משלהם ב-Health Connect.
- המזהים של Health Connect לא קשורים לחותמות זמן.
- בתרחישי שימוש מסוימים, יכול להיות שיהיה צורך לאחסן מזהה ספציפי של Health Connect במהלך תהליך עבודה. לדוגמה, נדרש מזהה ספציפי כדי לאחזר ולהציג למשתמש את רשומת הנתונים שהוא בדיוק התחבר אליה.
השעה ב-Health Connect
כל הנתונים שנכתבים ב-Health Connect צריכים לכלול את פרטי ההפרש בין אזור הזמן המקומי לבין שעון UTC. הגדרת ההפרש מאזור הזמן מאפשרת לאפליקציות לקרוא את הנתונים כדי להציג אותם בזמן אזרחי. הזמן האזרחי הוא הזמן המקומי שרלוונטי למשתמש, אבל לא בהכרח לפי זמן אוניברסלי מתואם (UTC).
במקרים נדירים, יכול להיות שההפרש מאזור הזמן לא יהיה זמין. כשזה קורה ב-Android 14 (API ברמה 34), Health Connect מגדיר את ההפרש מאזור הזמן על סמך אזור הזמן שמוגדר כברירת מחדל במערכת של המכשיר. ב-Android 13 ובגרסאות קודמות (רמת API 33 ומטה), אפשר לכתוב ל-Health Connect בלי לציין מידע על הפרש השעות, ומומלץ להימנע מכך ככל האפשר.
הגדרת השעה ואזור הזמן
כשכותבים נתונים, ציון מידע על היסט אזור הזמן מספק מידע על אזור הזמן כשקוראים נתונים ב-Health Connect. עם זאת, יכול להיות שהפעולה לא תצליח במצבים מסוימים, למשל אם לא צוין היסט אזור הזמן. האפליקציה שלכם צריכה להיות מוכנה להתמודד עם שני סוגי הנתונים, באופן שמתאים לנסיבות הספציפיות שלכם.
הרשאות
לפני שמבקשים הרשאות, צריך להצהיר עליהן במניפסט. בטבלאות הבאות מופיע מיפוי מלא של סוגי הנתונים וההרשאות שלהם.
מגרסה 1.0.0-alpha10 ואילך
טבלת הסבר להרשאות | הצהרה על הרשאת קריאה |
---|---|
קריאות ברקע |
android.permission.health.READ_HEALTH_DATA_IN_BACKGROUND
|
קריאות היסטוריה |
android.permission.health.READ_HEALTH_DATA_HISTORY
|
סוג הרשומה | הצהרת הרשאות קריאה וכתיבה |
---|---|
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 |
מרחק |
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 סוג התרגילEXERCISE_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 |
גובה |
android.permission.health.READ_HEIGHT android.permission.health.WRITE_HEIGHT |
הידרציה |
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 |
תזונה |
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 |
מהירות |
android.permission.health.READ_SPEED android.permission.health.WRITE_SPEED |
שלבים |
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 |
משקל |
android.permission.health.READ_WEIGHT android.permission.health.WRITE_WEIGHT |
WheelchairPushes |
android.permission.health.READ_WHEELCHAIR_PUSHES android.permission.health.WRITE_WHEELCHAIR_PUSHES |
בגרסה 1.0.0-alpha09 ומטה
סוג הרשומה | הצהרת הרשאות קריאה וכתיבה |
---|---|
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 |
מרחק |
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 סוג התרגילEXERCISE_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 |
גובה |
androidx.health.permission.Height.READ androidx.health.permission.Height.WRITE |
הידרציה |
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 |
תזונה |
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 |
מהירות |
androidx.health.permission.Speed.READ androidx.health.permission.Speed.WRITE |
שלבים |
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 |
משקל |
androidx.health.permission.Weight.READ androidx.health.permission.Weight.WRITE |
WheelchairPushes |
androidx.health.permission.WheelchairPushes.READ androidx.health.permission.WheelchairPushes.WRITE |
בדיקת סוגי הנתונים וההרשאות
אחרי שתכננתם את סוגי הנתונים וההרשאות, תוכלו להטמיע אותם במהלך הפיתוח.
לפני שמעלים את האפליקציה לחנות Play, חשוב לבדוק שוב את רשימת סוגי הנתונים וההרשאות שהאפליקציה דורשת. כך תוכלו להצהיר בצורה מדויקת על השימוש בנתונים באפליקציה.
כשמתכוננים לפרסם את האפליקציה ב-Play Store, צריך להצהיר על הגישה לסוגי הנתונים של Health Connect שהאפליקציה משתמשת בהם. אחרת, יכול להיות שהמשתמשים יקבלו הודעת שגיאה שבה האפליקציה לא יכולה לגשת לסוגי הנתונים של Health Connect כי נדרש אישור מיוחד.