أنواع بيانات Google Health API

يتضمّن الجدول التالي القائمة الكاملة لأنواع البيانات، مع عدة أعمدة لمساعدتك في فهم تمثيل كل نوع في Google Health API، بالإضافة إلى النطاق الذي يتوفّر فيه كل نوع.

حقول نوع البيانات

يتضمّن جدول أنواع البيانات في Google Health API عدة أعمدة حقول لمساعدتك في فهم طريقة تمثيل كل نوع من أنواع البيانات ومتطلباته. هذه الأعمدة هي كما يلي:

الجدول: أوصاف حقول أنواع البيانات في Google Health API
الحقل الوصف
dataType المعرّف المفصول بشرطات (على سبيل المثال، active-minutes) والمستخدَم في عناوين URL لنقاط النهاية.
مَعلمة filter المعرّف المفصول بشرطات سفلية (على سبيل المثال، active_minutes) يُستخدم كقيمة لمَعلمة الفلتر dataType في طلبات التجميع اليومي وطلبات التجميع.
نوع السجلّ

تشير إلى بنية البيانات المسجّلة وتنسيقها. في الخلفية، يتوافق ذلك مع تمثيل الموارد لنقاط البيانات. القيم المحتمَلة هي:

  • Interval (تمثّل القياسات المسجّلة على مدار فترة زمنية معيّنة).
  • Sample (يمثّل القياسات الفورية)
  • Daily (يمثّل القياسات المجمّعة أو المسجّلة يوميًا)
  • ‫Session (يمثّل مجموعة متواصلة من التسجيلات، مثل تمرين رياضي أو جلسة مخطَّط كهربية القلب (ECG)).
  • ‫Food (يمثّل صنف طعام أو كيان بيانات مرتبط بالتغذية)
العمليات المتاحة تعرض هذه السمة طرق واجهة برمجة التطبيقات المتوافقة مع نوع البيانات (مثل list وcreate وrollUp).
المستوى نطاقات OAuth المطلوبة للوصول إلى نوع البيانات
التوافق مع الويب هوك يشير ذلك إلى أنّ نوع البيانات يتيح إرسال إشعارات في الوقت الفعلي باستخدام webhooks عند مزامنة بيانات جديدة.
دعم الأصفار الحقيقية تشير إلى أنّ نوع البيانات يتيح تسجيل قيم صفرية صريحة للتمييز بين قيمة صفرية نشطة (مثل صفر دقيقة نشطة) والبيانات المفقودة أو غير المسجّلة.
حلّ مشكلة مساحة التخزين الحدّ الأدنى للفترة الزمنية للتسجيل أو أخذ العينات التي يتم فيها تخزين نقاط البيانات (على سبيل المثال، دقيقة واحدة لـ steps). بالنسبة إلى عمليات التجميع، يمثّل ذلك الحدّ الأدنى المقترَح لـ windowSize لضمان توزيع التجميع بشكل متساوٍ بدون عناصر بيانات الفترات الفرعية.
الأجهزة المتوافقة قائمة قابلة للتوسيع بالأجهزة الفعلية التي يمكنها تسجيل نوع البيانات هذا ومزامنته مع Google Health API (باستخدام تطبيق Fitbit).

الجدول: أنواع بيانات Google Health API
نوع البيانات العمليات
المتاحة
النطاق
السعرات الحرارية المحروقة أثناء النشاط البدني
dataType: active-energy-burned
filter parameter: active_energy_burned
نوع السجلّ: Interval
دقة التخزين: دقيقة واحدة
list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
الدقائق النشطة
dataType: active-minutes
filter parameter: active_minutes
نوع السجلّ: Interval
دقة التخزين: دقيقة واحدة

الأجهزة المتوافقة

  • Fitbit Air
  • Fitbit Alta
  • Fitbit Alta HR
  • Fitbit Blaze
  • Fitbit Charge 2
  • Fitbit Charge 3
  • Fitbit Flex 2
  • Fitbit Inspire
  • Fitbit Inspire HR
  • Pixel Watch 4
list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
دقائق نطاق النشاط
dataType: active-zone-minutes
filter parameter: active_zone_minutes
نوع السجلّ: Interval
دقة التخزين: دقيقة واحدة

الأجهزة المتوافقة

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
مستوى النشاط
dataType: activity-level
filter parameter: activity_level
نوع السجلّ: Interval
قائمة، تسوية .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Altitude
dataType: altitude
filter parameter: altitude
نوع السجلّ: Interval
دقة التخزين: دقيقة واحدة
list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
الغلوكوز في الدم
dataType: blood-glucose
filter parameter: blood_glucose
نوع السجلّ: نموذج
list, get, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
نسبة الدهون بالجسم
dataType: body-fat
filter parameter: body_fat
نوع السجلّ: نموذج

الأجهزة المتوافقة

list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
السعرات الحرارية المحروقة في نطاق معدّل نبضات القلب
dataType: calories-in-heart-rate-zone
filter parameter: calories_in_heart_rate_zone
نوع السجلّ: Interval
دقة التخزين: دقيقة واحدة
rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
درجة حرارة الجسم الأساسية
dataType: core-body-temperature
filter parameter: core_body_temperature
نوع السجلّ: نموذج
list, get, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
تغيُّر معدّل نبضات القلب اليومي
dataType: daily-heart-rate-variability
filter parameter: daily_heart_rate_variability
نوع السجلّ: يومي

الأجهزة المتوافقة

قائمة، تسوية .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
نطاقات معدّل نبضات القلب اليومية
dataType: daily-heart-rate-zones
filter parameter: daily_heart_rate_zones
نوع السجلّ: يومي
قائمة، تسوية .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
نسبة الأكسجين في الدم يوميًا
dataType: daily-oxygen-saturation
filter parameter: daily_oxygen_saturation
نوع السجلّ: يومي

الأجهزة المتوافقة

قائمة، تسوية .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
معدّل التنفس اليومي
dataType: daily-respiratory-rate
filter parameter: daily_respiratory_rate
نوع السجلّ: يومي

الأجهزة المتوافقة

قائمة، تسوية .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
معدّل النبض اليومي أثناء الراحة
dataType: daily-resting-heart-rate
filter parameter: daily_resting_heart_rate
نوع السجلّ: يومي

الأجهزة المتوافقة

قائمة، تسوية .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
استنتاجات درجة الحرارة اليومية أثناء النوم
dataType: daily-sleep-temperature-derivations
filter parameter: daily_sleep_temperature_derivations
نوع السجلّ: يومي

الأجهزة المتوافقة

قائمة، تسوية .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
الحد الأقصى اليومي لاستهلاك الأكسجين
dataType: daily-vo2-max
filter parameter: daily_vo2_max
نوع السجلّ: يومي

الأجهزة المتوافقة

قائمة، تسوية .activity_and_fitness.readonly
.activity_and_fitness.writeonly
المسافة
dataType: distance
filter parameter: distance
نوع السجلّ: Interval
دقة التخزين: دقيقة واحدة

الأجهزة المتوافقة

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
مخطَّط كهربية القلب (ECG)
dataType: electrocardiogram
filter parameter: electrocardiogram
نوع التسجيل: جلسة

الأجهزة المتوافقة

قائمة .ecg.readonly
التمارين الرياضية
dataType: exercise
filter parameter: exercise
نوع التسجيل: جلسة

الأجهزة المتوافقة

list, get, reconcile, create, update, batchDelete .activity_and_fitness.readonly
.activity_and_fitness.writeonly
الطوابق
dataType: floors
filter parameter: floors
نوع السجلّ: Interval
دقة التخزين: دقيقة واحدة
reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
الطعام
dataType: food
filter parameter: food
نوع السجلّ: طعام
list, get .nutrition.readonly
.nutrition.writeonly
وحدة قياس الطعام
dataType: food-measurement-unit
filter parameter: food_measurement_unit
نوع السجلّ: طعام

الأجهزة المتوافقة

list, get .nutrition.readonly
.nutrition.writeonly
معدّل نبضات القلب
dataType: heart-rate
filter parameter: heart_rate
نوع السجلّ: نموذج
دقة التخزين: ثانية واحدة

الأجهزة المتوافقة

list, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
تغيُّر معدّل نبضات القلب
dataType: heart-rate-variability
filter parameter: heart_rate_variability
نوع السجلّ: نموذج

الأجهزة المتوافقة

قائمة، تسوية .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
الارتفاع
dataType: height
filter parameter: height
نوع السجلّ: نموذج
list, get, reconcile, create, update, batchDelete .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
سجلّ شرب الماء
dataType: hydration-log
filter parameter: hydration_log
نوع التسجيل: جلسة
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly
إشعارات اضطراب نظم القلب
dataType: irregular-rhythm-notification
filter parameter: irregular_rhythm_notification
نوع التسجيل: جلسة
قائمة .irn.readonly
فترة الدورة الشهرية
dataType: menstrual-period
filter parameter: menstrual_period
نوع السجلّ: Interval
create, update, batchDelete .reproductive_health.writeonly
الأجواء
dataType: moods
filter parameter: moods
نوع السجلّ: نموذج
create, update, batchDelete .mindfulness.writeonly
سجلّ التغذية
dataType: nutrition-log
filter parameter: nutrition_log
نوع التسجيل: جلسة

الأجهزة المتوافقة

list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly
اختبار الإباضة
dataType: ovulation-test
filter parameter: ovulation_test
نوع السجلّ: نموذج
create, update, batchDelete .reproductive_health.writeonly
نسبة الأكسجين في الدم
dataType: oxygen-saturation
filter parameter: oxygen_saturation
نوع السجلّ: نموذج
دقة التخزين: دقيقة واحدة

الأجهزة المتوافقة

قائمة، تسوية .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
ملخّص جودة ومدة النوم استنادًا إلى معدّل التنفس
dataType: respiratory-rate-sleep-summary
filter parameter: respiratory_rate_sleep_summary
نوع السجلّ: نموذج

الأجهزة المتوافقة

قائمة، تسوية .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
الجري والحد الأقصى لاستهلاك الأكسجين
dataType: run-vo2-max
filter parameter: run_vo2_max
نوع السجلّ: نموذج

الأجهزة المتوافقة

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
فترة الخمول
dataType: sedentary-period
filter parameter: sedentary_period
نوع السجلّ: Interval

الأجهزة المتوافقة

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
أجهزة استشعار درجة حرارة الجلد v4beta
dataType: skin-temperature-sensors
filter parameter: skin_temperature_sensors
نوع السجلّ: نموذج

الأجهزة المتوافقة

قائمة .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
النوم
dataType: sleep
filter parameter: sleep
نوع التسجيل: جلسة

الأجهزة المتوافقة

list, get, reconcile, create, update, batchDelete .sleep.readonly
.sleep.writeonly
الخطوات
dataType: steps
filter parameter: steps
نوع السجلّ: Interval
دقة التخزين: دقيقة واحدة

الأجهزة المتوافقة

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
بيانات عدد مرات السباحة بطول المسبح
dataType: swim-lengths-data
filter parameter: swim_lengths_data
نوع السجلّ: Interval

الأجهزة المتوافقة

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
الأعراض
dataType: symptoms
filter parameter: symptoms
نوع السجلّ: نموذج
create, update, batchDelete .logged_symptoms.writeonly
الوقت في نطاق معدّل نبضات القلب
dataType: time-in-heart-rate-zone
filter parameter: time_in_heart_rate_zone
نوع السجلّ: Interval
دقة التخزين: دقيقة واحدة
list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
إجمالي السعرات الحرارية
dataType: total-calories
filter parameter: total_calories
نوع السجلّ: Interval
دقة التخزين: دقيقة واحدة

الأجهزة المتوافقة

rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
الحد الأقصى لاستهلاك الأكسجين
dataType: vo2-max
filter parameter: vo2_max
نوع السجلّ: نموذج

الأجهزة المتوافقة

قائمة، تسوية .activity_and_fitness.readonly
.activity_and_fitness.writeonly
الوزن
dataType: weight
filter parameter: weight
نوع السجلّ: نموذج

الأجهزة المتوافقة

list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly

قيود طلب البحث

عند طلب نقاط البيانات أو البيانات المجمّعة أو البيانات المجمّعة اليومية من واجهة برمجة التطبيقات، يجب مراعاة القيود التالية:

  • متطلبات الفلترة: تتطلّب بعض أنواع البيانات المشتقة المخصّصة للقراءة فقط، مثل total-calories، فلترًا يحدّد وقت بدء الفترة الزمنية (باستخدام الوقت الفعلي أو المدني).
  • حدود نطاق طلبات البحث: تفرض نقاط نهاية تجميع البيانات المجمّعة والبيانات المجمّعة اليومية الحدود القصوى لنطاق طلبات البحث استنادًا إلى نوع البيانات:
    • الحد الأقصى لنطاق طلب البحث هو 14 يومًا لكل من calories-in-heart-rate-zone وheart-rate وactive-minutes وtotal-calories.
    • الحد الأقصى لنطاق طلب البحث هو 90 يومًا لجميع أنواع البيانات الأخرى.
  • حجم نافذة التجميع: عند طلب نقطة النهاية rollUp، يجب أن تكون مدة windowSize ثانية واحدة على الأقل ("1s"). يتم رفض المدد التي تقل عن ثانية واحدة مع ظهور الخطأ INVALID_ARGUMENT. بالإضافة إلى ذلك، اختَر windowSize يساوي أو أكبر من دقة التخزين الأساسية لنوع البيانات (مثل "60s" لأنواع بيانات الفواصل الزمنية التي تبلغ دقيقة واحدة مثل steps وdistance) لتجنُّب التوزيع غير المتساوي على الفواصل الزمنية الفرعية. لمعرفة التفاصيل، يُرجى الاطّلاع على مقالة نافذة التجميع ودقة التخزين.

أنواع البيانات اليومية مقابل أنواع البيانات المتقطعة

بالنسبة إلى بعض المقاييس الفسيولوجية، مثل تغيُّر معدّل نبضات القلب (HRV) أو نسبة الأكسجين في الدم (SpO2)، توفّر Google Health API نوعَين مختلفَين من البيانات: إصدار يومي وإصدار لفترة زمنية. يُعدّ فهم الفرق بينهما أمرًا أساسيًا لاختيار المقياس المناسب لحالة الاستخدام:

  • يوميًا: ملخّص واحد مجمّع مسبقًا لليوم بأكمله استخدِم هذا الخيار للاطّلاع على المؤشرات العامة ولوحات البيانات اليومية لتوفير وقت المعالجة.

  • الفاصل الزمني: قياسات دقيقة وعالية الدقة يتم إجراؤها على مدار اليوم. استخدِم هذا الخيار لإنشاء رسم بياني للتقلّبات خلال اليوم أو لإجراء تحليل عميق لكل ساعة.

مدى توفّر البيانات

لا تتوفّر تحديثات بيانات المستخدم إلا بعد مزامنة أداة تتبُّع النشاط الرياضي أو إدخال بيانات جديدة يدويًا في تطبيق Google Health. يمكن مزامنة جهاز Fitbit وتطبيق Google Health تلقائيًا كل 15 دقيقة عندما يكون تطبيق Google Health مفتوحًا على الجهاز الجوّال ويكون هناك اتصال بيانات نشط بينهما وضمن نطاق البلوتوث. إذا كان المستخدم يتتبّع نشاطه باستخدام ميزة MobileTrack، تتم مزامنة هذه الميزة كل ساعة طالما أنّ التطبيق مفتوح.

جارٍ الاستعلام عن البيانات السابقة

من المزايا الأساسية لواجهة Google Health API هي إمكانية تتبُّع أداء المستخدم ومراقبة مؤشراته الحيوية على مدار فترات زمنية طويلة. يمكنك الاستعلام عن بيانات المستخدم منذ بداية تسجيلها، إذ لا تفرض واجهة برمجة التطبيقات أي قيود على كمية البيانات السابقة التي يمكن لتطبيقك استخدامها.

ومع ذلك، لا تزال طلبات البحث عن البيانات السابقة تخضع لحدود المعدّل العادية. لإدارة استقرار النظام ومنع الحمولات الزائدة، تستخدم Google Health API ميزة التقسيم التلقائي للصفحات مع أحجام صفحات خاصة بنقاط النهاية. يُرجى ملاحظة الحدود والسلوكيات التالية:

  • تقسيم الصفحات تلقائيًا: إذا طلبت بيانات تغطي فترة زمنية طويلة، ستعرض واجهة برمجة التطبيقات الصفحة الأولى من النتائج فقط، وذلك حتى الحد الأقصى لحجم الصفحة لنقطة النهاية هذه، بالإضافة إلى nextPageToken. يجب استخدام nextPageToken لطلب الصفحات اللاحقة.
  • أحجام الصفحات المتغيّرة: تعتمد حدود الحد الأقصى على نقطة النهاية ونوع البيانات. بالنسبة إلى معظم أنواع البيانات، يبلغ الحد الأقصى لأحجام الصفحات 10,000. ومع ذلك، بالنسبة إلى أنواع معيّنة من البيانات، مثل exercise وsleep، يتم تحديد الحد الأقصى لحجم الصفحة التلقائي بـ 25. على سبيل المثال، إذا طلب أحد العملاء جميع بيانات النوم لآخر 10 سنوات، ستعرض واجهة برمجة التطبيقات 25 جلسة نوم فقط في الصفحة الأولى.
  • القيود المفروضة على النطاق الزمني لعمليات التجميع: بالنسبة إلى نقاط النهاية الخاصة بتجميع البيانات ودمجها (مثل rollUp وdailyRollUp)، يتم فرض قيود على النطاقات الزمنية لطلبات البحث استنادًا إلى نوع البيانات:
    • الحد الأقصى للنطاق هو 14 يومًا لـ calories-in-heart-rate-zone وheart-rate وactive-minutes وtotal-calories.
    • نطاق أقصى يبلغ 90 يومًا لجميع أنواع بيانات الإحصاءات المجمّعة الأخرى

استنادًا إلى حجم البيانات السابقة التي يحتاجها تطبيقك، سيتطلّب استرداد مجموعة البيانات بالكامل تقسيم الصفحات بشكل تسلسلي. يُرجى مراعاة ذلك عند تصميم عملية مزامنة بيانات تطبيقك.

لضمان الأداء الأمثل وتجنُّب أخطاء واجهة برمجة التطبيقات، اتّبِع هذه الإرشادات عند الاستعلام عن البيانات السابقة:

مزامنة البيانات على مراحل (التشغيل على الساخن مقابل التشغيل على البارد)

  • التحميل الأوّلي "الساخن": يمكنك جلب وعرض بيانات آخر 7 إلى 14 يومًا فقط خلال تسلسل التحميل الأساسي. يضمن ذلك أن يرى المستخدمون البيانات على الفور بدون انتظار طلبات البحث التي تستغرق وقتًا طويلاً.
  • التحميل "البارد" في الخلفية: يمكنك تفويض استرداد البيانات السابقة القديمة إلى قائمة انتظار غير متزامنة ذات أولوية أقل أو عملية في الخلفية بعد عرض واجهة المستخدم الأساسية.

تقسيم طلبات البحث لتجميع البيانات

  • بما أنّ نقاط النهاية الخاصة بالتجميع والتجميع اليومي تفرض حدًا أقصى للنطاق الزمني (14 أو 90 يومًا حسب نوع البيانات)، يجب تقسيم طلبات البحث الكبيرة الخاصة بالتجميعات السابقة إلى فترات زمنية أصغر ومتسلسلة ضمن هذه الحدود.
  • يمكنك تجميع هذه الطلبات الفرعية أو ترتيبها بأمان لمراعاة حدود التزامن والحفاظ على مؤشرات تقدّم ثابتة في واجهة المستخدم.

الاستفادة من عمليات التجميع المُسبقة

إعادة هيكلة لوحات البيانات العامة والرسوم البيانية للمؤشرات لاستخدام نقاط نهاية ملخّصة ومجمّعة مسبقًا (مثل DailyRollUpDataPoints)، ما سيؤدي إلى تقليل عبء الحوسبة على الخلفية ووقت نقل البيانات عبر الشبكة إلى العميل بشكل كبير

معالجة الأخطاء بمرونة (عمليات إعادة المحاولة الذكية)

  • يجب تنفيذ معالجة صارمة لتأخير المحاولة بشكل أسي عند مواجهة حدود معدّل الطلبات (429 Too Many Requests) ومهلة بوابة الخادم (504 Gateway Timeout). لا تُعِد محاولة إرسال حمولات كبيرة وفاشلة على الفور. تؤدي عمليات إعادة المحاولة الفورية إلى مضاعفة ازدحام الخلفية وتفاقم تدهور النظام.

وصول الجهات الخارجية

لا يمكن لأجهزة Fitbit الاتصال مباشرةً بالتطبيقات أو الخدمات التابعة لجهات خارجية. تم تصميم هذه الأجهزة للتواصل والمزامنة حصريًا مع تطبيق Google Health.

يزامن الجهاز البيانات تلقائيًا على مدار اليوم، عندما يكون تطبيق Google Health مفتوحًا، أو كل 15 دقيقة إذا كان البلوتوث نشطًا والتطبيق يعمل في الخلفية. بعد اكتمال عملية المزامنة هذه، تصبح البيانات متاحة للخدمات الخارجية من خلال Google Health API.

فلترة جودة البيانات وصلاحيتها

لتوفير مقاييس صحية موثوقة بدون الحاجة إلى فلترة مخصّصة للتشويش من جهة العميل، تتحقّق Google Health API من صحة بيانات القياس عن بُعد لأدوات الاستشعار وتستبعد القياسات غير الصالحة قبل عرض الردود:

  • بالنسبة إلى نسبة الأكسجين في الدم (oxygen-saturation) على مستوى الدقيقة، تعرض واجهة برمجة التطبيقات القراءات التي تم التحقّق منها فقط وتزيل الدقائق التي تم وضع علامة عليها على أنّها غير صالحة بسبب حركة الذراع أو عدم إحكام ربط الساعة بالمعصم أو نتيجة درجة ثقة أداة الاستشعار التي تقل عن %50، بالإضافة إلى 3 دقائق قبل القراءة غير الصالحة وبعدها والفترات الصالحة المعزولة التي تقل مدتها عن 4 دقائق. ونتيجةً لذلك، قد تكون التغطية على مستوى الدقيقة متفرقة ومن المتوقّع حدوث فجوات. لمعرفة التفاصيل، يُرجى الاطّلاع على فلترة نسبة الأكسجين بالدم على مستوى الدقيقة وصلاحية البيانات.

معايير المسافة

يتم قياس مسافات التمرين، مثل elevationGainMillimeters، بالملليمتر كوحدة قياسية للأسباب التالية:

  1. الحفاظ على دقة البيانات: السبب الأهم لاستخدام المليمترات هو ضمان عدم فقدان أي دقة في البيانات التي نقرأها ونقدمها. يتيح لنا استخدام وحدة دقيقة مثل المليمترات تمثيل القياسات بدقة عالية.
  2. التوحيد: المليمتر هو الوحدة الموحّدة المصمّمة في جميع خدماتنا. يساعد هذا الاتساق في ضمان تجربة موحّدة للمطوّرين الذين يتفاعلون مع أجزاء مختلفة من واجهة برمجة التطبيقات.
  3. دعم واسع لأنظمة القياس: يسهّل استخدام وحدة أساسية مثل الملّيمتر على المطوّرين التحويل إلى أي وحدة أخرى يختارونها، سواء كانوا يستخدمون النظام المتري أو الإمبراطوري أو أنظمة قياس أخرى.

أيام متفاوتة الطول

تعطي معالجة الوقت من خلال Health API الأولوية لوقت المستخدم لمراعاة أطوال الأيام المتغيّرة الناتجة عن نظام التوقيت الصيفي أو السفر. يتم تخزين كل نقطة بيانات مع طابع زمني فعلي بالتوقيت العالمي المنسَّق (UTC) وفرق التوقيت العالمي المنسَّق (UTC) النشط في وقت الحدث. يتيح ذلك للنظام إجراء ما يلي:

  • اربط الحدث بلحظة فعلية دقيقة.
  • يجب تصحيح الوقت وفقًا للسياق المحلي للمستخدم من أجل التجميع.

نظام التوقيت الصيفي

عند تطبيق نظام التوقيت الصيفي، يؤدي "تأخير الساعة" إلى يوم مدني مدته 25 ساعة، وسيحتوي التجميع لهذا التاريخ على بيانات لمدة 25 ساعة. يؤدي "تقديم الساعة" إلى يوم مدني مدته 23 ساعة يعود فيه الوقت إلى التوقيت الرسمي.

سفر

يمكن أن يؤدي السفر عبر المناطق الزمنية إلى اختلافات أكبر في المدة الفعلية لليوم المدني الواحد.

استخدِم نقطة النهاية dailyRollUp لتسوية الاختلافات في المناطق الزمنية. فهي تنسب البيانات تلقائيًا إلى اليوم التقويمي الذي تم تسجيلها فيه وفقًا للتوقيت المحلي للمستخدم، ما يؤدي إلى "دمج" اليوم معًا بشكل فعّال على الرغم من تغيُّر المناطق الزمنية. لمعرفة التفاصيل والأمثلة، يُرجى الاطّلاع على قسم التجميع على مستوى أيام التقويم في دليل البيانات المجمّعة.