يوضّح هذا القسم كيفية قراءة بيانات عدد الخطوات اليومية الحالية باستخدام 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