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.gms
uygulama 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