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