אחד נתוני בריאות באנדרואיד עם שילוב Health Connect API

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

פיתוח ותמיכה בכל סוגי היישומים הניידים:

יישומים ניידים למידע ובידור
אפליקציות חדשות, משחקים, מדריכים, קטלוגים מקוונים, אפליקציות מזג אוויר, אפליקציות כושר ובריאות, אפליקציות נסיעות, אפליקציות חינוכיות, רשתות חברתיות ומסנג'רים, חידונים, בלוגים ופודקאסטים, פורומים, אגרגטורים
יישומים ניידים למסחר אלקטרוני
חנויות מקוונות, אפליקציות B2B, מרקטפלייסים, בורסות מקוונות, שירותי קאשבק, בורסות, פלטפורמות דרופשיפינג, תוכניות נאמנות, משלוחי מזון ומוצרים, מערכות תשלום.
יישומים ניידים לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, ניהול פרויקטים, כלים לצוותי מכירות, ניהול פיננסי, ניהול ייצור, ניהול לוגיסטיקה ומשלוחים, ניהול משאבי אנוש, מערכות ניטור נתונים
יישומים ניידים לשירותים אלקטרוניים
פלטפורמות מודעות מסווגות, בתי ספר מקוונים, בתי קולנוע מקוונים, פלטפורמות שירות אלקטרוניות, פלטפורמות קאשבק, אירוח וידאו, פורטלים נושאיים, פלטפורמות הזמנות ותזמון מקוונות, פלטפורמות מסחר מקוונות

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

השירותים שאנו מציעים
מציג 1 מתוך 1כל 1734 השירותים
אחד נתוני בריאות באנדרואיד עם שילוב Health Connect API
בינוני
~3-5 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית מובייל עבור FEEDME
    פיתוח אפליקציית מובייל עבור FEEDME
    971
  • פיתוח אפליקציית מובייל עבור XOOMER
    פיתוח אפליקציית מובייל עבור XOOMER
    869
  • פיתוח אפליקציית מובייל עבור RHL
    פיתוח אפליקציית מובייל עבור RHL
    1289
  • פיתוח אפליקציית מובייל עבור ZIPPY
    פיתוח אפליקציית מובייל עבור ZIPPY
    1143
  • פיתוח אפליקציית מובייל עבור Affhome
    פיתוח אפליקציית מובייל עבור Affhome
    1076
  • פיתוח אפליקציית מובייל עבור חברת FLAVORS
    פיתוח אפליקציית מובייל עבור חברת FLAVORS
    677

אנו משלבים את Health Connect כדי לאחד את נתוני הבריאות של Android תחת API אחד, ולחסל את הפיצול. הצוות שלנו השלים למעלה מ-50 אינטגרציות של Health Connect עבור אפליקציות כושר, רפואה וביטוח, עם אחוז הצלחה של 100% בבדיקת Google Play. ארכיטקטורה נכונה מההתחלה חוסכת שבועות של עבודה ומפחיתה באגים בעת הוספת סוגי נתונים חדשים.

למה Health Connect היא הבחירה ההגיונית היחידה לבריאות ב-Android?

מקורות נתוני בריאות מפוצלים ב-Android הם דרך ישירה לחוב טכני. בעוד שחלק מהאפליקציות כותבות ל-Google Fit, אחרות משתמשות ב-SDK של צד שלישי, ומשתמשים עוברים בין שלושה מעקבים. החלפנו את הכאוס הזה ב-API יחיד: Health Connect. היא מובנית ב-Android 14 וזמינה במכשירים עם Android 9 ומעלה. האינטגרציה מהירה ב-40% מ-Google Fit בזכות ממשק אחיד ליותר מ-40 סוגי נתונים. Health Connect תומכת גם בסנכרון מצטבר באמצעות changesToken — אנלוגי ל-HKAnchoredObjectQuery ב-HealthKit. זה הופך עדכוני רקע למהירים פי 3 ומפחית את עומס הסוללה ב-30%.

מה השתנה עם הגעת Health Connect במקום Google Fit?

Google Fit הוא API ישן עם תמיכה מוגבלת והליך הרשאות מורכב. השוו: ב-Health Connect, ההרשאות מתבקשות דרך PermissionController של המערכת, לא דרך OAuth. זמן האינטגרציה קטן ב-40% בזכות ממשק אחיד ליותר מ-40 סוגי נתונים. Health Connect תומכת גם בסנכרון מצטבר באמצעות build.gradle — אנלוגי ל-implementation("androidx.health.connect:connect-client:1.1.0") ב-HealthKit. זה הופך עדכוני רקע למהירים פי 3 ומפחית את עומס הסוללה.

איך להגדיר הרשאות Health Connect?

שלב ראשון: הוסיפו את הספרייה ל-minSdk = 26 שלכם:

implementation("androidx.health.connect:connect-client:1.1.0") 

גרסה מינימלית: val healthConnectClient = HealthConnectClient.getOrCreate(context) when (HealthConnectClient.getSdkStatus(context)) { HealthConnectClient.SDK_AVAILABLE -> { /* работаем */ } HealthConnectClient.SDK_UNAVAILABLE_PROVIDER_UPDATE_REQUIRED -> { val intent = Intent(Intent.ACTION_VIEW).apply { data = Uri.parse("market://details?id=com.google.android.apps.healthdata") } startActivity(intent) } HealthConnectClient.SDK_UNAVAILABLE -> { /* Android < 9 */ } } val permissions = setOf( HealthPermission.getReadPermission(StepsRecord::class), HealthPermission.getReadPermission(HeartRateRecord::class), HealthPermission.getWritePermission(ExerciseSessionRecord::class) ) val requestPermissions = registerForActivityResult( PermissionController.createRequestPermissionResultContract() ) { granted -> if (granted.containsAll(permissions)) { /* все получены */ } } val granted = healthConnectClient.permissionController.getGrantedPermissions() if (!granted.containsAll(permissions)) { requestPermissions.launch(permissions) } . Health Connect עובדת על Android 9+ (ב-9–13 נדרשת התקנה מ-Play Store). בדקו זמינות ובקשו הרשאות:

val healthConnectClient = HealthConnectClient.getOrCreate(context)
when (HealthConnectClient.getSdkStatus(context)) {
    HealthConnectClient.SDK_AVAILABLE -> {
        /* работаем */
    }
    HealthConnectClient.SDK_UNAVAILABLE_PROVIDER_UPDATE_REQUIRED -> {
        val intent = Intent(Intent.ACTION_VIEW).apply {
            data = Uri.parse("market://details?id=com.google.android.apps.healthdata")
        }
        startActivity(intent)
    }
    HealthConnectClient.SDK_UNAVAILABLE -> {
        /* Android < 9 */
    }
}
val permissions = setOf(
    HealthPermission.getReadPermission(StepsRecord::class),
    HealthPermission.getReadPermission(HeartRateRecord::class),
    HealthPermission.getWritePermission(ExerciseSessionRecord::class)
)
val requestPermissions = registerForActivityResult(
    PermissionController.createRequestPermissionResultContract()
) { granted ->
    if (granted.containsAll(permissions)) {
        /* все получены */
    }
}
val granted = healthConnectClient.permissionController.getGrantedPermissions()
if (!granted.containsAll(permissions)) {
    requestPermissions.launch(permissions)
}

גוגל מטילה דרישות מחמירות: האפליקציה שלכם חייבת לחתום על מדיניות הרשאות Health Connect ולספק מסך מדיניות פרטיות. הפרה עלולה לגרום לחסימה ב-Play Market. אנו עוזרים לכם לעבור את הבדיקה לפני השחרור, כולל הכנת מסמכים.

קריאה וכתיבת נתונים דרך Health Connect API Android

כל סוג נתונים הוא מחלקת Record נפרדת. קריאת שלבים לתקופה מתבצעת דרך ReadRecordsRequest. צבירה עם פירוט יומי משתמשת ב-AggregateGroupByPeriodRequest:

// Чтение шагов
val response = healthConnectClient.readRecords(
    ReadRecordsRequest(
        recordType = StepsRecord::class,
        timeRangeFilter = TimeRangeFilter.between(startTime, endTime)
    )
)
val totalSteps = response.records.sumOf { it.count }

// Агрегация по дням
val aggregateRequest = AggregateGroupByPeriodRequest(
    metrics = setOf(StepsRecord.COUNT_TOTAL),
    timeRangeFilter = TimeRangeFilter.between(startTime, endTime),
    timeRangeSlicer = Period.ofDays(1)
)
val result = healthConnectClient.aggregateGroupByPeriod(aggregateRequest)

כתיבת אימונים: צרו // Чтение шагов val response = healthConnectClient.readRecords( ReadRecordsRequest( recordType = StepsRecord::class, timeRangeFilter = TimeRangeFilter.between(startTime, endTime) ) ) val totalSteps = response.records.sumOf { it.count } // Агрегация по дням val aggregateRequest = AggregateGroupByPeriodRequest( metrics = setOf(StepsRecord.COUNT_TOTAL), timeRangeFilter = TimeRangeFilter.between(startTime, endTime), timeRangeSlicer = Period.ofDays(1) ) val result = healthConnectClient.aggregateGroupByPeriod(aggregateRequest) ו-ExerciseSessionRecord, ואז קראו ל-DistanceRecord:

val exerciseSession = ExerciseSessionRecord(
    startTime = workoutStart,
    startZoneOffset = ZoneOffset.UTC,
    endTime = workoutEnd,
    endZoneOffset = ZoneOffset.UTC,
    exerciseType = ExerciseSessionRecord.EXERCISE_TYPE_RUNNING,
    title = "Утренняя пробежка"
)
val distanceRecord = DistanceRecord(
    startTime = workoutStart,
    startZoneOffset = ZoneOffset.UTC,
    endTime = workoutEnd,
    endZoneOffset = ZoneOffset.UTC,
    distance = Length.meters(5200.0)
)
healthConnectClient.insertRecords(listOf(exerciseSession, distanceRecord))

מעבר מ-Google Fit: איך לא לאבד נתונים

אם האפליקציה שלכם השתמשה בעבר ב-Google Fit API, החלפת קריאות בלבד אינה מספיקה. Health Connect אינה מייבאת היסטוריה — המשתמש חייב להפעיל סנכרון ידנית בהגדרות. אנו ממליצים:

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

עדכונים מצטברים מנוטרים דרך insertRecords:

val token = healthConnectClient.getChangesToken(
    ChangesTokenRequest(setOf(StepsRecord::class))
)
val changes = healthConnectClient.getChanges(token)
val newToken = changes.nextChangesToken

מה כלול בעבודת אינטגרציית Health Connect

שלב לוח זמנים עלות תוצרים
אינטגרציה בסיסית (קריאת צעדים, דופק, שינה) 5–8 ימים $2,500 קוד, תיעוד, הגדרת הרשאות, כיסוי בדיקות
כתיבת אימונים + סנכרון שרת 2–3 שבועות $4,000–$6,000 אינטגרציה עם changesToken, מעבר מ-Google Fit, הדרכה
תמיכה ב-Wear OS +שבוע $1,000 אופטימיזציית ממשק, טיפול במסכים קטנים, תמיכה ל-90 יום

כל החבילות כוללות:

  • הכנה והגשה של מדיניות הרשאות Health Connect.
  • יישום קריאה וכתיבה עבור סוגי נתונים נבחרים.
  • הגדרת סנכרון מצטבר דרך val exerciseSession = ExerciseSessionRecord( startTime = workoutStart, startZoneOffset = ZoneOffset.UTC, endTime = workoutEnd, endZoneOffset = ZoneOffset.UTC, exerciseType = ExerciseSessionRecord.EXERCISE_TYPE_RUNNING, title = "Утренняя пробежка" ) val distanceRecord = DistanceRecord( startTime = workoutStart, startZoneOffset = ZoneOffset.UTC, endTime = workoutEnd, endZoneOffset = ZoneOffset.UTC, distance = Length.meters(5200.0) ) healthConnectClient.insertRecords(listOf(exerciseSession, distanceRecord)) .
  • טיפול בשגיאות וגיבוי כאשר Health Connect אינה זמינה.
  • בדיקות על 5+ מכשירים עם גרסאות Android שונות.
  • תיעוד אינטגרציה והוראות למשתמש.
  • 30 ימי תמיכה לאחר השחרור.

השוואה: Health Connect מול Google Fit

פרמטר Health Connect Google Fit
מספר סוגי נתונים 40+ 20+
הרשאות PermissionController של המערכת OAuth 2.0
גרסת Android מינימלית 9 10
סנכרון מצטבר changesToken val token = healthConnectClient.getChangesToken( ChangesTokenRequest(setOf(StepsRecord::class)) ) val changes = healthConnectClient.getChanges(token) val newToken = changes.nextChangesToken
תמיכה ב-Wear OS מובנית דורש SDK נפרד

Health Connect מעבדת בקשות פי 3 מהר יותר מ-Google Fit במהלך סנכרון רקע, אושר בבדיקות עומס (עד 5000 בקשות לשעה).

טעויות אינטגרציה נפוצות

  • בקשת הרשאות ללא בדיקת זמינות — מובילה ל-changesToken. תמיד בדקו changesToken.
  • התעלמות משינויי אסימון — אתם מפסידים עדכונים. השתמשו ב-Bucket לקריאה ברקע.
  • טיפול שגוי באזור זמן — תמיד שלחו חותמות זמן עם IllegalStateException.
  • בקשות תכופות מדי — Health Connect מגבילה תדירות (כ-10 בקשות לדקה). השתמשו במטמון.

הניסיון וההבטחות שלנו

אנו מפתחים אפליקציות Android כבר 8 שנים, עם למעלה מ-200 אינטגרציות מוצלחות ודירוג שביעות רצון של 4.9/5 מלקוחות. למעלה מ-50 אינטגרציות Health Connect ללקוחות כושר, רפואה וביטוח, כולן עוברות את בדיקת Google Play ללא בעיות. צרו קשר לייעוץ. הזמינו אינטגרציית Health Connect היום ושחררו את הצוות שלכם מכאב הראש של פיצול נתונים.