قراءة الإجمالي اليومي للخطوات

يوضّح هذا القسم كيفية قراءة بيانات عدد الخطوات اليومية الحالية باستخدام Fit Android API وFit REST API.

Android

يمكن لتطبيقك قراءة إجمالي عدد الخطوات اليومي الحالي من خلال استدعاء 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")
    }

لمزيد من المعلومات حول استخدام مصادر البيانات المجمّعة، يُرجى الاطّلاع على استخدام "سجلّ اللياقة البدنية".

REST

يمكن لتطبيقك قراءة إجمالي عدد الخطوات اليومية الحالي من جميع مصادر البيانات من خلال إرسال طلب 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