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

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

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

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

راحة

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