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