הדמיה של נתוני חיישנים באמצעות שירותי בריאות

אפשר להשתמש בנתונים סינתטיים שנוצרו מ-Health Services ב-Wear OS כדי לבדוק את האפליקציה כאילו מתבצע אימון אמיתי.

אם אתם מבצעים בדיקה באמולטור עם Wear OS 3 (רמת API 30) או גרסה מתקדמת יותר, אתם יכולים להשתמש בנתונים סינתטיים שנוצרו על ידי האמולטור. במדריך הבא מוסבר מה ההבדלים בין יצירת נתונים סינתטיים ב-Wear OS 3 ובגרסאות מתקדמות יותר.

שימוש בנתונים סינתטיים ב-Wear OS 4 ואילך

אם אתם מבצעים בדיקה באמולטור שמריץ Wear OS 4 (רמת API‏ 33) או גרסה מתקדמת יותר, אתם יכולים להשתמש בנתונים סינתטיים שנוצרו על ידי האמולטור כדי לבדוק את האפליקציה. יש כמה שיפורים בדרך שבה נתונים סינתטיים נוצרים בגרסאות קודמות של Wear OS:

שימוש בחלונית החיישנים של שירותי הבריאות

Android Studio Koala Feature Drop (Canary) כולל חלונית חיישנים של שירותי בריאות ב-Wear OS. אפשר להשתמש בחלונית כדי לדמות מכשיר עם יכולות חיישן ספציפיות או בלי יכולות כאלה. זה חשוב לבדיקה כשמפתחים אפליקציות כושר ב-Wear OS.

אפשר גם להשתמש בחלונית כדי לשנות את ערכי המדדים ולראות איך האפליקציה משתנה.

כדי לפתוח את החלונית ולהשתמש בה:

  1. יוצרים או פותחים מכשיר וירטואלי של Android‏ (AVD) ומריצים את האפליקציה באמולטור.
  2. בחלונית של האמולטור, בוחרים באפשרות Wear Health Services (שירותי בריאות של Wear). פתיחת החלונית Wear Health Services נפתחת החלונית 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: אירועים והמפתחות שלהם

סוג התנופה בחבטת גולף

פרמטר

סוג חבטת גולף

פאט

סוג הנדנדה החלקית

חלקי

סוג הנדנדה המלא

מלא

מוסיפים את סוג התנופה של חבטת הגולף אחרי שמציינים את אירוע חבטת הגולף:

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 מ'/דקה false

עצירה

כדי להפסיק את הפעילות הסינתטית, משתמשים בפקודה הבאה:

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

יכול להיות שיעברו עד דקה עד ששירותי הבריאות יספקו את אירוע הנפילה.