Günlük Adım Toplamını Oku

Bu bölümde, Fit Android API ve Fit REST API kullanılarak mevcut günlük adım sayısı verilerinin nasıl okunacağı gösterilmektedir.

Android

Uygulamanız, aşağıdaki örnekte gösterildiği gibi HistoryClient.readDailyTotal işlevini çağırarak mevcut günlük toplam adım sayısını okuyabilir:

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)
    }

Günlük toplam, cihazın geçerli saat diliminde geçerli günün gece yarısından itibaren hesaplanır.

Fit uygulamasıyla aynı günlük adım sayısını elde etmek için aşağıdaki örnekte gösterildiği gibi com.google.android.gmsuygulama paketini kullanarak bir veri kaynağı oluşturun:

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")
    }

Toplu veri kaynaklarıyla çalışma hakkında daha fazla bilgi için Fitness Geçmişi ile çalışma başlıklı makaleyi inceleyin.

REST

Uygulamanız, POST isteğinde bulunup belirtilen süre için com.google.step_count.delta veri türünü sorgulayarak tüm veri kaynaklarındaki mevcut günlük adım sayısı toplamını okuyabilir.

HTTP yöntemi

POST

İstek URL'si

https://www.googleapis.com/fitness/v1/users/me/dataset:aggregate

İstek metni

{
  "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 komutu

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