ממשק API של פלטפורמת Health

Health Platform API הוא ממשק API ל-Android שמספק למפתחים ממשק יחיד לקריאה, לכתיבה ולשיתוף של נתוני הבריאות, הרווחה והכושר ההיסטוריים של משתמשים. באמצעות Health Platform, המשתמשים שולטים בנתונים שלהם. המשתמשים קובעים לאילו אפליקציות תהיה גישה לקריאה או לכתיבה של סוגי נתונים שונים. סוגי הנתונים של Health Platform API כוללים גובה, דופק ועוד.

Health Platform API מספק למשתמשים מנגנון אחסון ושיתוף שמאפשר להם לבחור לאילו אפליקציות תהיה גישה לנתונים האישיים שלהם בנושאי בריאות, כושר ואיכות חיים, ולהציג את הנתונים האלה. כך מפתחי האפליקציות יכולים להציג למשתמשים תמונה מלאה יותר של בריאותם, והמשתמשים יכולים לעקוב אחרי הנתונים שלהם בצורה יעילה יותר.

ערכת הפיתוח של Health Platform API מספקת למפתחי אפליקציות ל-Android את כל מה שנחוץ להם כדי לספק גישה לנתוני הבריאות והכושר של משתמשים במכשירי Samsung נבחרים, ומאפשרת לאפליקציות לבצע פעולות בכמות גדולה, כמו הוספה, מחיקה וקריאה של נתונים.

שנתחיל?

כשמשתמשים ב-Health Platform, חשוב לזכור את הדברים הבאים:

  • אפליקציות לקוח צריכות לקבל מהמשתמש הרשאות מפורטות לגישה לקריאה או לכתיבה.
  • המשתמש יכול לדחות הרשאות או לבטל אותן בכל שלב.
  • Health Platform API תומך רק במכשירי Samsung נבחרים.
  • HealthDataClient הוא הלקוח של Health Platform ונקודת הכניסה אליה.

בתמונה הבאה מוצגים שלבי השילוב הנדרשים שמפתחים צריכים לבצע:

שלבי השילוב, כולל הגדרת SDK, גישה והרשאות ופעולות CRUD.
איור 1. שלבי השילוב של Health Platform.

קובצי גרסאות

הגרסה 1 של Health Platform כוללת את הרכיבים הבאים:

  • Client SDK: צריך לכלול את ערכת ה-SDK הזו באפליקציה כדי להשתמש ב-Health Platform API. ה-SDK הוא מאגר Maven שאפשר לכלול אותו ישירות בקובצי ה-build של האפליקציה ב-Gradle.

התקנת Health Platform

כדי להתקין את Health Platform:

בקובץ build.gradle ברמה הבסיסית של האפליקציה, מוסיפים את המאגר, כפי שמתואר בדוגמה הבאה:

allprojects {
    . . .
    repositories {
        . . .
        google()
    }
}

מוסיפים יחסי תלות ל-Health Platform SDK בקובץ build.gradle של המודול, כפי שמתואר בדוגמה הבאה:

Kotlin

dependencies { . . . implementation("com.google.android.libraries.healthdata:health-data-api:1.0.0-alpha01") }

Groovy

dependencies { . . . implementation 'com.google.android.libraries.healthdata:health-data-api:1.0.0-alpha01' }

נתונים

פלטפורמת Health שומרת ומארגנת נתוני בריאות וכושר. הוא גם מתייחס להבדלים מהותיים בין האופן שבו נמדדים נתונים מסוגים שונים. לדוגמה, מדידת קצב הלב מתבצעת באופן מיידי, אבל ספירת הצעדים מתבצעת לאורך תקופה מסוימת.

ריכזנו כאן את האובייקטים המרכזיים בפלטפורמת Health וההבדלים ביניהם:

  • RawData: רשומת מדידה ונתונים.
  • DataType: ספציפי לסוגים נפוצים של נתוני בריאות וכושר, כמו קצב הלב, אחוז השומן בגוף או טמפרטורת הגוף, וכן לפורמטים שלהם, כמו שדות, קריאה בלבד או אופציונליים.
  • SampleData: אובייקט RawData שהוא מדידה מיידית, כמו קצב הלב, לחץ הדם או מהירות הריצה.
  • IntervalData: אובייקט RawData שהוא מדידה מצטברת שנלקחה לאורך תקופה מסוימת, כמו מספר הצעדים, המרחק שעברתם או הקלוריות שנשרפו.
  • SeriesData: אובייקט RawData שמכיל רצף של מדידות לאורך תקופת זמן. SeriesData מתאים במיוחד לנתוני חיישנים בתדירות גבוהה, כמו דגימות רציפות של קצב הלב במהלך סשן פעילות.

כל אחת משלוש הכיתות RawData תואמת לקבוצת משנה ספציפית של DataType: SampleData,‏ IntervalData ו-SeriesData תואמות ל-SampleDataType,‏ IntervalDataType ו-SeriesDataType, בהתאמה.

כשכל אובייקט RawData מוכנס, פלטפורמת Health מקצה לו מזהה ייחודי (UID). אפשר להשתמש במזהה ה-UID הזה כדי להפנות לאובייקט RawData ספציפי בבקשות קריאה, עדכון או מחיקה.

סוגי הנתונים

פלטפורמת Health כוללת מגוון רחב של סוגי נתונים שנמצאים בשימוש נפוץ באפליקציות בריאות וכושר. הנתונים שמאוחסנים בסוגי הנתונים הזמינים מספקים למשתמשים תצוגה מקיפה של נתוני הבריאות, הכושר והרווחה ההיסטוריים שלהם, ומספקים תובנות לגבי הפעילויות היומיות שלהם.

כל סוג נתונים מוגדר לפי פורמט הנתונים שלו, שכולל את הפרטים הבאים:

  • שדות: שדות ספציפיים או כלליים שמשויכים לסוג הנתונים. לדוגמה, לסוג הנתונים 'רמת החמצן בדם (SpO2)' יש שדות כמו 'שם', 'הערות' ו'אחוז'.
  • סוג: long,‏ double,‏ string או enum.
  • מאפיין: לקריאה בלבד, נדרש, אופציונלי או טווח אימות.

רשימה של סוגי נתונים

כדי להפיק את המקסימום מפלטפורמת Health, חשוב להבין את סוגי הנתונים הזמינים. פלטפורמת Health תומכת בסוגי הנתונים שמפורטים בטבלה הבאה. סוגי הנתונים מאורגנים לפי הפורמט שלהם: דגימה, מרווח זמן או סדרה.

SampleData סוגים:

DataType.BasalMetabolicRateDataType BASAL_METABOLIC_RATE חובה
DataType.BloodGlucoseDataType BLOOD_GLUCOSE שדות חובה ושדות אופציונליים
DataType.BloodPressureDataType BLOOD_PRESSURE שדות חובה ושדות אופציונליים
DataType.BodyFatDataType BODY_FAT חובה
DataType.BodyTemperatureDataType BODY_TEMPERATURE שדות חובה ושדות אופציונליים
DataType.BoneMassDataType BONE_MASS חובה
DataType.CervicalMucusDataType CERVICAL_MUCUS אופציונלי
DataType.CervicalPositionDataType CERVICAL_POSITION אופציונלי
DataType.CyclingPedalingCadenceDataType CYCLING_PEDALING_CADENCE חובה
DataType.DateOfBirthDataType DATE_OF_BIRTH לקריאה בלבד
DataType.GenderDataType GENDER לקריאה בלבד
DataType.HeartRateDataType HEART_RATE חובה
DataType.HeightDataType HEIGHT חובה
DataType.HipCircumferenceDataType HIP_CIRCUMFERENCE חובה
DataType.HrvDifferentialIndexDataType HRV_DIFFERENTIAL_INDEX חובה
DataType.HrvRmssdDataType HRV_RMSSD חובה
DataType.HrvSDataType HRV_S חובה
DataType.HrvSd2DataType HRV_SD2 חובה
DataType.HrvSdannDataType HRV_SDANN חובה
DataType.HrvSdnnDataType HRV_SDNN חובה
DataType.HrvSdnnIndexDataType HRV_SDNN_INDEX חובה
DataType.HrvSdnnIndexDataType HRV_SDNN_INDEX חובה
DataType.HrvSdsdDataType HRV_SDSD חובה
DataType.HrvTinnDataType HRV_TINN חובה
DataType.LeanBodyMassDataType LEAN_BODY_MASS חובה
DataType.LocationDataType LOCATION חובה
DataType.MenstruationDataType MENSTRUATION אופציונלי
DataType.OvulationTestDataType OVULATION_TEST חובה
DataType.OxygenSaturationDataType OXYGEN_SATURATION חובה
DataType.PaceDataType PACE חובה
DataType.PowerDataType POWER חובה
DataType.RespiratoryRateDataType RESPIRATORY_RATE חובה
DataType.RestingHeartRateDataType RESTING_HEART_RATE חובה
DataType.SexualActivityDataType SEXUAL_ACTIVITY חובה
DataType.SpeedDataType SPEED חובה
DataType.StepsCadenceDataType STEPS_CADENCE חובה
DataType.Vo2MaxDataType VO2_MAX שדות חובה ושדות אופציונליים
DataType.WaistCircumferenceDataType WAIST_CIRCUMFERENCE חובה
DataType.WeightDataType WEIGHT חובה

IntervalData סוגים:

DataType.ActiveEnergyDataType ACTIVE_ENERGY_BURNED חובה
DataType.ActiveTimeDataType ACTIVE_TIME לקריאה בלבד
DataType.ActivityEventDataType ACTIVITY_EVENT חובה
DataType.ActivityLapDataType ACTIVITY_LAP אופציונלי
DataType.ActivitySessionDataType ACTIVITY_SESSION חובה
DataType.BasalEnergyDataType BASAL_ENERGY_BURNED לקריאה בלבד
DataType.DistanceDataType DISTANCE חובה
DataType.ElevationGainedDataType ELEVATION_GAINED חובה
DataType.FloorsClimbedDataType FLOORS_CLIMBED חובה
DataType.HydrationDataType HYDRATION חובה
DataType.NutritionDataType NUTRITION אופציונלי
DataType.RepetitionsDataType REPETITIONS חובה
DataType.SleepSessionDataType SLEEP_SESSION אופציונלי
DataType.SleepStageDataType SLEEP_STAGE חובה
DataType.StepsDataType STEPS חובה
DataType.SwimmingStrokesDataType SWIMMING_STROKES שדות חובה ושדות אופציונליים
DataType.TotalEnergyDataType TOTAL_ENERGY_BURNED לקריאה בלבד

SeriesData סוגים:

DataType.CyclingPedalingCadenceSeriesDataType CYCLING_PEDALING_CADENCE חובה
DataType.HeartRateSeriesDataType HEART_RATE חובה
DataType.LocationSeriesDataType LOCATION חובה
DataType.PaceSeriesDataType PACE חובה
DataType.PowerSeriesDataType POWER חובה
DataType.SpeedSeriesDataType SPEED חובה
DataType.StepsCadenceSeriesDataType STEPS_CADENCE חובה

פונקציות למפתחים

בהמשך מפורטת קבוצת הפונקציות הסטנדרטיות של נתונים שזמינות ב-Health Platform. הפלטפורמה מספקת פונקציות סטנדרטיות להוספה, לעדכון ולמחיקה של נתונים גולמיים.

קריאת AggregatedData

הפלטפורמה מאפשרת ללקוחות להחיל פונקציית צבירה על הסוגים הבאים של AggregatedData:

  • StatisticalData: הערכים הממוצעים, המינימליים או המקסימליים בקבוצה של SampleData או SeriesData, למשל קצב הלב המינימלי והמקסימלי במהלך סשן פעילות.
  • CumulativeData: הסכום של ערכי IntervalData, למשל מספר הצעדים הכולל בטווח זמן יומי.
  • CountData: ספירה פשוטה של מספר אובייקטי RawData הבסיסיים, כמו מספר סשנים של פעילות בשבוע נתון. אפשר לחשב נתוני ספירה עבור סוגים של נתוני דגימה, מרווח וסדרה.

קישור ל-Health Platform API

HealthDataClient היא נקודת הכניסה ל-Health Platform API.

בשלבים הבאים מוסבר איך להתחבר ל-Health Platform:

  1. משתמשים ב-HealthDataService.getClient כדי ליצור מכונות HealthDataClient חדשות.
  2. לאחר מכן, אפליקציית הלקוח צריכה לבקש מהמשתמש הרשאה באמצעות השיטה requestPermissions (Set).

HealthDataClient מנהל באופן אוטומטי את החיבור לשכבת האחסון הבסיסית, ומטפל בכל התקשורת בין תהליכים (IPC) ובסריאליזציה של בקשות יוצאות ותשובות נכנסות.