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

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

Android

Uygulamanız aşağıdaki örnekte gösterildiği gibi, HistoryClient.readDailyTotal çağrısı yaparak geçerli günlük adım toplamı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 dilimine göre geçerli günün gece yarısından hesaplanır.

Fit uygulamasıyla aynı günlük adım sayısını almak için com.google.android.gmsuygulama paketini kullanarak aşağıdaki örnekte gösterildiği gibi 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")
    }

Birleştirilmiş veri kaynaklarıyla çalışma hakkında daha fazla bilgi edinmek için Fitness Geçmişiyle Çalışma sayfasını inceleyin.

REST

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

HTTP yöntemi

POST

URL isteyin

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