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

בקטע הזה מדגים קריאה של הנתונים הנוכחיים של מספר הצעדים היומי באמצעות Fit API ל-Android ו-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