يتضمّن الجدول التالي القائمة الكاملة لأنواع البيانات، مع عدة أعمدة لمساعدتك في فهم تمثيل كل نوع في Google Health API، بالإضافة إلى النطاق الذي يتوفّر فيه كل نوع.
حقول نوع البيانات
يتضمّن جدول أنواع البيانات في Google Health API عدة أعمدة حقول لمساعدتك في فهم طريقة تمثيل كل نوع من أنواع البيانات ومتطلباته. هذه الأعمدة هي كما يلي:
| الحقل | الوصف |
|---|---|
dataType |
المعرّف المفصول بشرطات (على سبيل المثال، active-minutes) والمستخدَم في عناوين URL لنقاط النهاية. |
مَعلمة filter |
المعرّف المفصول بشرطات سفلية (على سبيل المثال،
active_minutes) يُستخدم كقيمة لمَعلمة الفلتر
dataType في طلبات التجميع اليومي وطلبات
التجميع. |
| نوع السجلّ | تشير إلى بنية البيانات المسجّلة وتنسيقها. في الخلفية، يتوافق ذلك مع تمثيل الموارد لنقاط البيانات. القيم المحتمَلة هي:
|
| العمليات المتاحة | تعرض هذه السمة طرق واجهة برمجة التطبيقات المتوافقة مع نوع البيانات (مثل
list وcreate وrollUp). |
| المستوى | نطاقات OAuth المطلوبة للوصول إلى نوع البيانات |
| التوافق مع الويب هوك | يشير ذلك إلى أنّ نوع البيانات يتيح إرسال إشعارات في الوقت الفعلي باستخدام webhooks عند مزامنة بيانات جديدة. |
| دعم الأصفار الحقيقية | تشير إلى أنّ نوع البيانات يتيح تسجيل قيم صفرية صريحة للتمييز بين قيمة صفرية نشطة (مثل صفر دقيقة نشطة) والبيانات المفقودة أو غير المسجّلة. |
| حلّ مشكلة مساحة التخزين | الحدّ الأدنى للفترة الزمنية للتسجيل أو أخذ العينات التي يتم فيها تخزين نقاط البيانات (على سبيل المثال، دقيقة واحدة لـ steps). بالنسبة إلى عمليات التجميع، يمثّل ذلك الحدّ الأدنى المقترَح لـ windowSize لضمان توزيع التجميع بشكل متساوٍ بدون عناصر بيانات الفترات الفرعية. |
| الأجهزة المتوافقة | قائمة قابلة للتوسيع بالأجهزة الفعلية التي يمكنها تسجيل نوع البيانات هذا ومزامنته مع Google Health API (باستخدام تطبيق Fitbit). |
| نوع البيانات | العمليات المتاحة |
النطاق |
|---|---|---|
|
السعرات الحرارية المحروقة أثناء النشاط البدني
dataType:
active-energy-burnedfilter parameter: active_energy_burned
نوع السجلّ: Interval
دقة التخزين: دقيقة واحدة
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
الدقائق النشطة
dataType:
active-minutesfilter parameter: active_minutes
نوع السجلّ: Interval
دقة التخزين: دقيقة واحدة
الأجهزة المتوافقة
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
دقائق نطاق النشاط
dataType:
active-zone-minutesfilter parameter: active_zone_minutes
نوع السجلّ: Interval
دقة التخزين: دقيقة واحدة
الأجهزة المتوافقة
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
مستوى النشاط
|
قائمة، تسوية | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
Altitude
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
الغلوكوز في الدم
|
list, get, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
نسبة الدهون بالجسم
dataType:
body-fatfilter 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-zonefilter parameter: calories_in_heart_rate_zone
نوع السجلّ: Interval
دقة التخزين: دقيقة واحدة
|
rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
درجة حرارة الجسم الأساسية
dataType:
core-body-temperaturefilter parameter: core_body_temperature
نوع السجلّ: نموذج
|
list, get, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
تغيُّر معدّل نبضات القلب اليومي
dataType:
daily-heart-rate-variabilityfilter parameter: daily_heart_rate_variability
نوع السجلّ: يومي
الأجهزة المتوافقة
|
قائمة، تسوية | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
نطاقات معدّل نبضات القلب اليومية
dataType:
daily-heart-rate-zonesfilter parameter: daily_heart_rate_zones
نوع السجلّ: يومي
|
قائمة، تسوية | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
نسبة الأكسجين في الدم يوميًا
dataType:
daily-oxygen-saturationfilter parameter: daily_oxygen_saturation
نوع السجلّ: يومي
الأجهزة المتوافقة
|
قائمة، تسوية | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
معدّل التنفس اليومي
dataType:
daily-respiratory-ratefilter parameter: daily_respiratory_rate
نوع السجلّ: يومي
الأجهزة المتوافقة
|
قائمة، تسوية | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
معدّل النبض اليومي أثناء الراحة
dataType:
daily-resting-heart-ratefilter parameter: daily_resting_heart_rate
نوع السجلّ: يومي
الأجهزة المتوافقة
|
قائمة، تسوية | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
استنتاجات درجة الحرارة اليومية أثناء النوم
dataType:
daily-sleep-temperature-derivationsfilter parameter: daily_sleep_temperature_derivations
نوع السجلّ: يومي
الأجهزة المتوافقة
|
قائمة، تسوية | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
الحد الأقصى اليومي لاستهلاك الأكسجين
dataType:
daily-vo2-maxfilter parameter: daily_vo2_max
نوع السجلّ: يومي
الأجهزة المتوافقة
|
قائمة، تسوية | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
المسافة
dataType:
distancefilter parameter: distance
نوع السجلّ: Interval
دقة التخزين: دقيقة واحدة
الأجهزة المتوافقة
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
مخطَّط كهربية القلب (ECG)
dataType:
electrocardiogramfilter parameter: electrocardiogram
نوع التسجيل: جلسة
الأجهزة المتوافقة
|
قائمة | .ecg.readonly |
|
التمارين الرياضية
dataType:
exercisefilter parameter: exercise
نوع التسجيل: جلسة
الأجهزة المتوافقة
|
list, get, reconcile, create, update, batchDelete | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
الطوابق
|
reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
الطعام
|
list, get | .nutrition.readonly.nutrition.writeonly |
|
وحدة قياس الطعام
dataType:
food-measurement-unitfilter parameter: food_measurement_unit
نوع السجلّ: طعام
الأجهزة المتوافقة
|
list, get | .nutrition.readonly.nutrition.writeonly |
|
معدّل نبضات القلب
dataType:
heart-ratefilter parameter: heart_rate
نوع السجلّ: نموذج
دقة التخزين: ثانية واحدة
الأجهزة المتوافقة
|
list, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
تغيُّر معدّل نبضات القلب
dataType:
heart-rate-variabilityfilter parameter: heart_rate_variability
نوع السجلّ: نموذج
الأجهزة المتوافقة
|
قائمة، تسوية | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
الارتفاع
|
list, get, reconcile, create, update, batchDelete | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
سجلّ شرب الماء
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
|
إشعارات اضطراب نظم القلب
dataType:
irregular-rhythm-notificationfilter parameter: irregular_rhythm_notification
نوع التسجيل: جلسة
|
قائمة | .irn.readonly |
|
فترة الدورة الشهرية
|
create, update, batchDelete | .reproductive_health.writeonly |
|
الأجواء
|
create, update, batchDelete | .mindfulness.writeonly |
|
سجلّ التغذية
dataType:
nutrition-logfilter parameter: nutrition_log
نوع التسجيل: جلسة
الأجهزة المتوافقة
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
|
اختبار الإباضة
|
create, update, batchDelete | .reproductive_health.writeonly |
|
نسبة الأكسجين في الدم
dataType:
oxygen-saturationfilter parameter: oxygen_saturation
نوع السجلّ: نموذج
دقة التخزين: دقيقة واحدة
الأجهزة المتوافقة
|
قائمة، تسوية | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
ملخّص جودة ومدة النوم استنادًا إلى معدّل التنفس
dataType:
respiratory-rate-sleep-summaryfilter parameter: respiratory_rate_sleep_summary
نوع السجلّ: نموذج
الأجهزة المتوافقة
|
قائمة، تسوية | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
الجري والحد الأقصى لاستهلاك الأكسجين
dataType:
run-vo2-maxfilter parameter: run_vo2_max
نوع السجلّ: نموذج
الأجهزة المتوافقة
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
فترة الخمول
dataType:
sedentary-periodfilter parameter: sedentary_period
نوع السجلّ: Interval
الأجهزة المتوافقة
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
أجهزة استشعار درجة حرارة الجلد
v4beta
dataType:
skin-temperature-sensorsfilter parameter: skin_temperature_sensors
نوع السجلّ: نموذج
الأجهزة المتوافقة |
قائمة | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
النوم
dataType:
sleepfilter parameter: sleep
نوع التسجيل: جلسة
الأجهزة المتوافقة
|
list, get, reconcile, create, update, batchDelete | .sleep.readonly.sleep.writeonly |
|
الخطوات
dataType:
stepsfilter parameter: steps
نوع السجلّ: Interval
دقة التخزين: دقيقة واحدة
الأجهزة المتوافقة
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
بيانات عدد مرات السباحة بطول المسبح
dataType:
swim-lengths-datafilter parameter: swim_lengths_data
نوع السجلّ: Interval
الأجهزة المتوافقة
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
الأعراض
|
create, update, batchDelete | .logged_symptoms.writeonly |
|
الوقت في نطاق معدّل نبضات القلب
dataType:
time-in-heart-rate-zonefilter parameter: time_in_heart_rate_zone
نوع السجلّ: Interval
دقة التخزين: دقيقة واحدة
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
إجمالي السعرات الحرارية
dataType:
total-caloriesfilter parameter: total_calories
نوع السجلّ: Interval
دقة التخزين: دقيقة واحدة
الأجهزة المتوافقة
|
rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
الحد الأقصى لاستهلاك الأكسجين
dataType:
vo2-maxfilter parameter: vo2_max
نوع السجلّ: نموذج
الأجهزة المتوافقة
|
قائمة، تسوية | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
الوزن
dataType:
weightfilter 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 يومًا لجميع أنواع البيانات الأخرى.
- الحد الأقصى لنطاق طلب البحث هو 14 يومًا لكل من
- حجم نافذة التجميع: عند طلب نقطة النهاية
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 يومًا لجميع أنواع بيانات الإحصاءات المجمّعة الأخرى
- الحد الأقصى للنطاق هو 14 يومًا لـ
استنادًا إلى حجم البيانات السابقة التي يحتاجها تطبيقك، سيتطلّب استرداد مجموعة البيانات بالكامل تقسيم الصفحات بشكل تسلسلي. يُرجى مراعاة ذلك عند تصميم عملية مزامنة بيانات تطبيقك.
لضمان الأداء الأمثل وتجنُّب أخطاء واجهة برمجة التطبيقات، اتّبِع هذه الإرشادات عند الاستعلام عن البيانات السابقة:
مزامنة البيانات على مراحل (التشغيل على الساخن مقابل التشغيل على البارد)
- التحميل الأوّلي "الساخن": يمكنك جلب وعرض بيانات آخر 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، بالملليمتر كوحدة قياسية للأسباب التالية:
- الحفاظ على دقة البيانات: السبب الأهم لاستخدام المليمترات هو ضمان عدم فقدان أي دقة في البيانات التي نقرأها ونقدمها. يتيح لنا استخدام وحدة دقيقة مثل المليمترات تمثيل القياسات بدقة عالية.
- التوحيد: المليمتر هو الوحدة الموحّدة المصمّمة في جميع خدماتنا. يساعد هذا الاتساق في ضمان تجربة موحّدة للمطوّرين الذين يتفاعلون مع أجزاء مختلفة من واجهة برمجة التطبيقات.
- دعم واسع لأنظمة القياس: يسهّل استخدام وحدة أساسية مثل الملّيمتر على المطوّرين التحويل إلى أي وحدة أخرى يختارونها، سواء كانوا يستخدمون النظام المتري أو الإمبراطوري أو أنظمة قياس أخرى.
أيام متفاوتة الطول
تعطي معالجة الوقت من خلال Health API الأولوية لوقت المستخدم لمراعاة أطوال الأيام المتغيّرة الناتجة عن نظام التوقيت الصيفي أو السفر. يتم تخزين كل نقطة بيانات مع طابع زمني فعلي بالتوقيت العالمي المنسَّق (UTC) وفرق التوقيت العالمي المنسَّق (UTC) النشط في وقت الحدث. يتيح ذلك للنظام إجراء ما يلي:
- اربط الحدث بلحظة فعلية دقيقة.
- يجب تصحيح الوقت وفقًا للسياق المحلي للمستخدم من أجل التجميع.
نظام التوقيت الصيفي
عند تطبيق نظام التوقيت الصيفي، يؤدي "تأخير الساعة" إلى يوم مدني مدته 25 ساعة، وسيحتوي التجميع لهذا التاريخ على بيانات لمدة 25 ساعة. يؤدي "تقديم الساعة" إلى يوم مدني مدته 23 ساعة يعود فيه الوقت إلى التوقيت الرسمي.
سفر
يمكن أن يؤدي السفر عبر المناطق الزمنية إلى اختلافات أكبر في المدة الفعلية لليوم المدني الواحد.
استخدِم نقطة النهاية dailyRollUp لتسوية الاختلافات في المناطق الزمنية. فهي تنسب البيانات تلقائيًا إلى اليوم التقويمي الذي تم تسجيلها فيه وفقًا للتوقيت المحلي للمستخدم، ما يؤدي إلى "دمج" اليوم معًا بشكل فعّال على الرغم من تغيُّر المناطق الزمنية. لمعرفة التفاصيل والأمثلة، يُرجى الاطّلاع على قسم التجميع على مستوى أيام التقويم في دليل البيانات المجمّعة.