محاكاة بيانات جهاز الاستشعار باستخدام الخدمات الصحية

استخدِم بيانات اصطناعية تم إنشاؤها من "خدمات الصحة" على Wear OS لاختبار تطبيقك كما لو كان تمرينًا حقيقيًا.

إذا كنت تختبر تطبيقك على محاكي يعمل بنظام التشغيل Wear OS 3 (المستوى 30 من واجهة برمجة التطبيقات) أو إصدار أحدث، يمكنك استخدام البيانات الاصطناعية التي ينشئها المحاكي. راجِع الدليل التالي لمعرفة المزيد عن الاختلافات بين إنشاء بيانات اصطناعية لنظام التشغيل Wear OS 3 والإصدارات الأحدث.

استخدام البيانات الاصطناعية على الإصدار 4 من Wear OS والإصدارات الأحدث

إذا كنت تختبر تطبيقك على محاكي يعمل بنظام التشغيل Wear OS 4 (المستوى 33 من واجهة برمجة التطبيقات) أو إصدار أحدث، يمكنك استخدام البيانات الاصطناعية التي ينشئها المحاكي لاختبار تطبيقك. ويقدّم هذا الإصدار عددًا من التحسينات على طريقة إنشاء البيانات الاصطناعية في الإصدارات السابقة من Wear OS:

  • يتم دمج عملية إنشاء البيانات الاصطناعية على الإصدار 4 من نظام التشغيل Wear OS والإصدارات الأحدث مع دورة حياة Health Services API. وهذا يعني أنّه لا حاجة إلى استخدام أوامر adb لبدء التمرين أو إيقافه. بدلاً من ذلك، يمكنك بدء التمرين أو إيقافه داخل التطبيق كما يفعل المستخدم.

  • توسيع نطاق الأحداث الرياضية المتاحة: يمكنك محاكاة تلقّي أحداث الإيقاف المؤقت التلقائي والاستئناف وأحداث السقوط ورصد النوم ورصد ضربات الغولف.

استخدام "لوحة أجهزة الاستشعار" في "خدمات الصحة"

يتضمّن تحديث Koala الذي يحتوي على ميزات جديدة في "استوديو Android" (إصدار Canary) لوحة مستشعر في "خدمات الصحة على Wear OS". يمكن استخدام اللوحة لمحاكاة جهاز يتضمّن إمكانات استشعار معيّنة أو لا يتضمّنها، وهو أمر مهم لاختبار التطبيقات الخاصة باللياقة البدنية على Wear OS.

يمكنك أيضًا استخدام اللوحة لتغيير قيم المقاييس ومراقبة كيفية تعديل تطبيقك.

لفتح اللوحة واستخدامها، اتّبِع الخطوات التالية:

  1. أنشئ جهاز Android افتراضيًا (AVD) أو افتحه، ثم شغِّل تطبيقك على المحاكي.
  2. في لوحة المحاكي، انقر على خدمات Wear Health. فتح لوحة "خدمات الصحة في الأجهزة القابلة للارتداء" تفتح لوحة خدمات Wear Health Services، وتعرض قائمة بأجهزة الاستشعار المتوفّرة على أجهزة مختلفة تعمل بنظام التشغيل Android.

بعد فتح اللوحة، يمكنك إجراء ما يلي:

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

إنشاء بيانات اصطناعية باستخدام المحاكي

يمكنك أيضًا تشغيل تطبيقك بدون لوحة أجهزة الاستشعار والسماح للمحاكي بإنشاء البيانات تلقائيًا.

استخدِم عناصر التحكّم داخل التطبيق لبدء إنشاء البيانات الاصطناعية وإيقافه مؤقتًا وإنهاء العملية.

يُرجى العِلم أيضًا أنّ المحاكي ينشئ قيم البيانات نفسها لكل تمرين.

محاكاة الأحداث

يمكنك محاكاة أحداث مختلفة في المحاكي، مثل AUTO_PAUSE_DETECTED. يمكن استخدام الأمر التالي لتفعيل هذه الأحداث:

adb shell am broadcast -a "whs.event-key" com.google.android.wearable.healthservices

الأحداث الاصطناعية

حدث

المفتاح

تم رصد ميزة "التوقف الآلي"

whs.AUTO_PAUSE_DETECTED

تم رصد ميزة "استئناف التشغيل التلقائي"

whs.AUTO_RESUME_DETECTED

تم رصد سقوط

whs.FALL_OVER

تم رصد النوم

whs.START_SLEEPING

تم رصد إيقاف التشغيل أثناء النوم

whs.STOP_SLEEPING

تم رصد لقطة غولف

whs.GOLF_SHOT

على سبيل المثال، يمكنك استخدام الأمر التالي لتفعيل حدث الإيقاف المؤقت التلقائي:

​​adb shell am broadcast -a "whs.AUTO_PAUSE_DETECTED" com.google.android.wearable.healthservices

بالنسبة إلى أحداث ضربات الغولف، عليك تحديد مَعلمات إضافية لنوع تأرجح ضربة الغولف، وهي موضّحة في الجدول التالي:

الجدول 1: الأحداث ومفاتيحها

نوع ضربة الجولف

المَعلمة

نوع ضربة التأرجح

الضربة الرقيقة

نوع الأرجوحة الجزئية

جزئي

Swing Full Type

كامِل

أضِف نوع تأرجح ضربة كرة الغولف بعد تحديد حدث ضربة كرة الغولف:

adb shell am broadcast -a "whs.GOLF_SHOT" --es golf_shot_swing_type \
  "golf-swing-type-parameter" com.google.android.wearable.healthservices

على سبيل المثال، يؤدي الأمر التالي إلى تشغيل لقطة غولف جزئية:

adb shell am broadcast -a "whs.GOLF_SHOT" --es golf_shot_swing_type "partial" \
  com.google.android.wearable.healthservices

استخدام البيانات الاصطناعية على Wear OS 3

إذا كنت تختبِر تطبيقك على محاكي يعمل بنظام التشغيل Wear OS 3، يمكنك أيضًا استخدام بيانات اصطناعية لاختبار تطبيقك.

تفعيل إنشاء بيانات اصطناعية

أكمِل الخطوات التالية لتفعيل ميزة إنشاء البيانات الاصطناعية على Wear OS 3.

  1. فعِّل خيارات المطوّرين.
  2. أدخِل الأمر adb التالي لتفعيل الوضع الاصطناعي:

    adb shell am broadcast \
    -a "whs.USE_SYNTHETIC_PROVIDERS" \
    com.google.android.wearable.healthservices
    

بعد تفعيل ميزة إنشاء البيانات الاصطناعية، يمكنك إصدار الأوامر الموضّحة في هذه الصفحة للتحكّم في سلوك "المستخدم الاصطناعي".

إيقاف إنشاء البيانات الاصطناعية

للعودة إلى استخدام أجهزة الاستشعار الحقيقية، شغِّل الأمر التالي:

adb shell am broadcast \
-a "whs.USE_SENSOR_PROVIDERS" \
com.google.android.wearable.healthservices

التمارين الاصطناعية

تتيح "خدمات الصحة" أنواع التمارين الرياضية التالية:

  • المشي: whs.synthetic.user.START_WALKING
  • الركض: whs.synthetic.user.START_RUNNING
  • المشي لمسافات طويلة: whs.synthetic.user.START_HIKING
  • السباحة: whs.synthetic.user.START_SWIMMING
  • الركض على جهاز المشي: whs.synthetic.user.START_RUNNING_TREADMILL

تنتج التمارين بيانات اصطناعية واقعية لأنواع البيانات التالية:

  • معدّل نبضات القلب
  • عدد الخطوات في الدقيقة
  • الموقع الجغرافي لنظام تحديد المواقع العالمي (GPS)، باستخدام مسار تلقائي واحد
  • مدة النشاط
  • الارتفاع والطوابق

بالإضافة إلى ذلك، يمكن إنشاء الحالات التالية:

  • حالة النوم: نائم أو مستيقظ
  • رصد السقوط

بدء

لبدء محاكاة تمرين، أرسِل البث المناسب إلى com.google.android.wearable.healthservices:

# start the "walking" synthetic exercise
$ adb shell am broadcast \
-a "whs.synthetic.user.START_WALKING" \
com.google.android.wearable.healthservices

يتضمّن كل نشاط إعدادات مُسبقة للمقاييس المتوافقة:

النشاط معدّل نبضات القلب متوسط السرعة تغيير الارتفاع استخدام الموقع الجغرافي
المشي ‫120 نبضة في الدقيقة ‫1.4 متر/ثانية ‫20.0 متر/دقيقة true
قيد التنفيذ ‫170 نبضة في الدقيقة 2.3 متر/ثانية ‫20.0 متر/دقيقة true
رحلة مسير ‫150 نبضة في الدقيقة 1.3 متر/ثانية ‫20.0 متر/دقيقة true
سباحة ‫150 نبضة في الدقيقة 1.6 متر/ثانية ‫0.0 متر/دقيقة true
الجري على جهاز المشي ‫160 ن/د 2.3 متر/ثانية ‫20.0 متر/دقيقة خطأ

إيقاف

لإيقاف النشاط الاصطناعي، استخدِم الأمر التالي:

adb shell am broadcast \
-a "whs.synthetic.user.STOP_EXERCISE" \
com.google.android.wearable.healthservices

قرض مخصص

للحصول على تحكّم أكثر دقة في المقاييس التي يتم إنشاؤها، ابدأ نشاطًا رياضيًا مخصّصًا باستخدام سلسلة الإجراء whs.synthetic.user.START_EXERCISE. قدِّم أي مجموعة من العلامات التالية:

  • --ei exercise_options_duration_secs <int>: مدة التمرين بالثواني القيمة التلقائية: 0
  • استبدِل --ei exercise_options_heart_rate <int> بمعدّل نبضات القلب في الدقيقة. المتوسط: 70.
  • --ef exercise_options_average_speed <float>: متوسط السرعة بالأمتار في الثانية يؤثّر ذلك أيضًا في عدد الخطوات في الدقيقة، أو الإيقاع. القيمة التلقائية: 0
  • --ez exercise_options_use_location <boolean>: تُستخدَم لتحديد ما إذا كان سيتم إرسال بيانات الموقع الجغرافي أثناء التمرين باستخدام مسار تلقائي. القيمة التلقائية: false
  • --ef exercise_options_max_elevation_rate <float>: أقصى معدّل ممكن لتغيّر الارتفاع بالأمتار في الدقيقة القيمة التلقائية: 0

على سبيل المثال، اضبط خيارات التمرين بالطريقة التالية:

adb shell am broadcast \
-a "whs.synthetic.user.START_EXERCISE" \
--ei exercise_options_heart_rate 90 \
--ef exercise_options_average_speed 1.2 \
--ez exercise_options_use_location true \
com.google.android.wearable.healthservices

يمكنك أيضًا تغيير أنواع البيانات المتاحة، سواء كان الجهاز الفعلي أو المحاكي يتيح نوع بيانات معيّنًا أم لا. على سبيل المثال، يمكنك تفعيل أو إيقاف الارتفاع المطلق، كما هو موضّح في المقتطف التالي:

# enable synthetic mode and enable absolute elevation
$ adb shell am broadcast \
-a "whs.CONFIGURE_SYNTHETIC_DEVICE" \
--ez absolute_elevation true \
com.google.android.wearable.healthservices

# enable synthetic mode and disable absolute elevation
$ adb shell am broadcast \
-a "whs.CONFIGURE_SYNTHETIC_DEVICE" \
--ez absolute_elevation false \
com.google.android.wearable.healthservices

الحالات والأحداث الأخرى

حالة النوم

يمكنك أيضًا بدء حالات السكون للمستخدم الاصطناعي. هناك حالتان متوافقتان: السكون والنشاط.

للدخول في وضع السكون، شغِّل الأمر التالي:

adb shell am broadcast \
-a "whs.synthetic.user.START_SLEEPING" \
com.google.android.wearable.healthservices

للدخول إلى حالة الاستعداد، شغِّل الأمر التالي:

adb shell am broadcast \
-a "whs.synthetic.user.STOP_SLEEPING" \
com.google.android.wearable.healthservices

رصد السقوط

لمحاكاة السقوط، نفِّذ الأمر التالي:

adb shell am broadcast \
-a "whs.synthetic.user.FALL_OVER" \
com.google.android.wearable.healthservices

قد يستغرق الأمر ما يصل إلى دقيقة واحدة حتى ترسل خدمات الصحة حدث السقوط.