קריאה של סיכום השלבים היומי

קטע זה מדגים את קריאת הנתונים הנוכחיים של מספר צעדים יומיים באמצעות Fit Android API ו-Fit REST API.

Android

האפליקציה יכולה לקרוא את הסכום הכולל של השלב היומי במספר HistoryClient.readDailyTotal, כפי שניתן לראות בדוגמה הבאה:

Fitness.getHistoryClient(this, GoogleSignIn.getAccountForExtension(this, fitnessOptions))
    .readDailyTotal(DataType.TYPE_STEP_COUNT_DELTA)
    .addOnSuccessListener { result ->
        val totalSteps =
            result.dataPoints.firstOrNull()?.getValue(Field.FIELD_STEPS)?.asInt() ?: 0
        // Do something with totalSteps
    }
    .addOnFailureListener { e ->
        Log.i(TAG, "There was a problem getting steps.", e)
    }

הסיכום היומי מחושב לפי חצות ביום הנוכחי באזור הזמן הנוכחי של המכשיר.

כדי לקבל את אותו מספר פעולות ביום כמו באפליקציית Fit, יוצרים מקור נתונים באמצעות com.google.android.gmsחבילת האפליקציות, כפי שמוצג בדוגמה הבאה:

val startTime = LocalDate.now().atStartOfDay(ZoneId.systemDefault())
val endTime = LocalDateTime.now().atZone(ZoneId.systemDefault())

val datasource = DataSource.Builder()
    .setAppPackageName("com.google.android.gms")
    .setDataType(DataType.TYPE_STEP_COUNT_DELTA)
    .setType(DataSource.TYPE_DERIVED)
    .setStreamName("estimated_steps")
    .build()

val request = DataReadRequest.Builder()
    .aggregate(datasource)
    .bucketByTime(1, TimeUnit.DAYS)
    .setTimeRange(startTime.toEpochSecond(), endTime.toEpochSecond(), TimeUnit.SECONDS)
    .build()

Fitness.getHistoryClient(this, GoogleSignIn.getAccountForExtension(this, fitnessOptions))
    .readData(request)
    .addOnSuccessListener { response ->
        val totalSteps = response.buckets
            .flatMap { it.dataSets }
            .flatMap { it.dataPoints }
            .sumBy { it.getValue(Field.FIELD_STEPS).asInt() }
        Log.i(TAG, "Total steps: $totalSteps")
    }

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

REST

האפליקציה שלך יכולה לקרוא את המספר הכולל של הצעדים היומיים בכל מקורות הנתונים, על ידי שליחת בקשה POST והגשת שאילתות לגבי סוג הנתונים com.google.step_count.delta עבור תקופת הזמן שצוינה.

שיטת HTTP

פרסום

כתובת URL לבקשה

https://www.googleapis.com/fitness/v1/users/me/dataset:aggregate

גוף הבקשה

{
  "aggregateBy": [{
    "dataTypeName": "com.google.step_count.delta",
    "dataSourceId": "derived:com.google.step_count.delta:com.google.android.gms:estimated_steps"
  }],
  "bucketByTime": { "durationMillis": 86400000 },
  "startTimeMillis": 1438705622000,
  "endTimeMillis": 1439310422000
}

פקודת Curl

curl \
-X POST \
-H "Content-Type: application/json;encoding=utf-8" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-d @aggregate.json \
https://www.googleapis.com/fitness/v1/users/me/dataset:aggregate