این بخش خواندن دادههای شمارش گامهای روزانه فعلی را با استفاده از 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