این بخش خواندن دادههای شمارش گامهای روزانه فعلی را با استفاده از Fit Android API و Fit REST API نشان میدهد.
اندروید
همانطور که در مثال زیر نشان داده شده است، برنامه شما میتواند با تماس با 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") }
برای اطلاعات بیشتر در مورد کار با منابع داده انبوه، به کار با سابقه تناسب اندام مراجعه کنید.
باقی مانده
برنامه شما میتواند با درخواست 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