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