שיפור התאימות של האפליקציה במכשירי Wear OS

ממשק ה-API של Wear Health Services‏ (WHS) הוא רכיב חובה בכל המכשירים שמופעלת בהם מערכת Wear OS מגרסה 3 ואילך, כי הוא מספק פלטפורמת אינטגרציה עקבית למפתחים של אפליקציות בריאות וכושר. כדאי לבנות את האפליקציה כך שהיא תותאם בצורה חלקה למכשירים רבים ולפונקציות השונות שלהם, כדי לשמור על תאימות בין המכשירים ולמנוע בעיות בחוויית המשתמש. כדי לעשות זאת, צריך להצהיר על תלות רק עבור הלקוחות שהאפליקציה שלכם משתמשת בהם. בנוסף, כדאי לאפשר לאפליקציה להציג או להסיר מדדים מתקדמים אופציונליים בהתאם לזמינות שלהם.

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

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

לקוח של פעילות גופנית

בקטעים הבאים מתוארים סוגי הנתונים וההתנהגויות הצפויות של ExerciseClient.

התנהגויות צפויות

ב-ExerciseClient, חלק מסוגי התרגילים תלויים בזמינות של סוגי נתונים מסוימים. לדוגמה, תרגילי כיסא גלגלים זמינים רק אם יש תמיכה בדחיפות של כיסא גלגלים. אפשר להפעיל ולהשבית את האפשרויות האלה בהתאם לזמינות שלהן במכשיר מסוים.

רוב סוגי הנתונים של פעילות גופנית נדגמים ומועברים במרווחי זמן של שנייה אחת, עם כמה יוצאים מן הכלל:

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

העברת הנתונים יכולה להתבצע בסטרימינג או באצווה. הנתונים מועברים בסטרימינג בזמן שהמעבד של האפליקציה פועל, בדרך כלל כשהמסך פועל ויש אינטראקציה איתו. כדי לחסוך בסוללה, הנתונים נשלחים בקבוצות אחרי שהמסך כבה או עובר למצב תצוגת אווירה דינמית (מופעל אבל לא אינטראקטיבי). הנתונים שנאספים בקבוצות מועברים לאפליקציה כשהמעבד של האפליקציה מופעל מחדש, למשל כשהשעון יוצא ממצב רגיש לסביבה, או כשהמאגרים לאיסוף נתונים בקבוצות מלאים (הגודל של המאגרים משתנה בהתאם למכשיר). קצב הדגימה נשאר זהה בזמן שהמכשיר במצב סביבה, כך שעדיין יש נקודות נתונים בתדירות גבוהה בחבילה שנמסרת.

סוגי הנתונים נגזרים אך ורק מנתונים שנוצרו על ידי חיישנים בשעון. לדוגמה, נתוני המיקום מגיעים מהשעון בלבד ולא מהטלפון.

סוגי הנתונים

ExerciseClient API מאפשר לכם להתחיל, להשהות, להמשיך ולהפסיק אימונים מסוגים שונים. לכל פעילות גופנית, WHS מגדיר קבוצה של סוגי נתונים שזמינים לכם עבור סוג הפעילות הזה. כך נחסכת אנרגיה והלוגיקה של האפליקציה פשוטה יותר, כי חיישנים שלא נדרשים לפעילות מסוימת לא מופעלים. לדוגמה, כשמתחילים ריצה, נתוני המיקום מסופקים ונרשמים רק בריצה בחוץ. כשמתחילים אימון רכיבה על אופניים, לא מוצגים צעדים ולא מתבצע מעקב אחריהם. בקטעים הבאים מפורטים סוגי הנתונים שנתמכים ב-ExerciseClient.

סוגי נתוני פעילות גופנית שזמינים בכל המכשירים

סוגי הנתונים הבאים של פעילות גופנית זמינים בכל המכשירים.

  • לסוגי הנתונים לדוגמה יש סוג נתונים תואם של _STATS שמחזיר ערכים מינימליים, מקסימליים וממוצעים מהתרגיל. לדוגמה, אפשר לשלוף נתונים סטטיסטיים של PACE באמצעות סוג הנתונים PACE_STATS.
  • לסוגי נתונים של מרווחים יש סוג נתונים תואם של ‎_TOTAL שמחזיר את הערך המצטבר מהתרגיל. לדוגמה, אפשר לשלוף נתונים סטטיסטיים של DISTANCE באמצעות סוג הנתונים DISTANCE_TOTAL.
טבלה 1: סוגי נתוני פעילות גופנית שזמינים בכל המכשירים
מדד הנתונים הצפויים הערות לגבי התנהגויות צפויות
HEART_RATE_BPM פעימות לדקה [סוג נתונים: Double] בכל המכשירים, הדופק נמדד פעם בשנייה במהלך אימון. חלק מהמכשירים מדווחים על ערך של פעימות בדקה בכל שנייה. חלק מהמכשירים מדווחים על קצב פעימות הלב רק אם הוא השתנה מאז הערך הקודם. אל תצפו לקבל ערך של פעימות בדקה בכל שנייה במרווח של שנייה אחת בכל המכשירים.
מיקום קו רוחב וקו אורך [סוג נתונים: Double] נתוני המיקום מבוססים רק על ה-GPS של השעון. אל תצפו שנתוני המיקום יגיעו מספק המיקום המשולב או משירותי Android אחרים). כל נקודת נתונים כוללת גם ערך דיוק (שנקרא גם שגיאת מיקום אופקי) וזמינות.
צעדים [סוג נתונים: Long] מספר הצעדים הוא סכום מצטבר לאורך משך התרגיל, לא כולל הזמן שבו התרגיל מושהה
DISTANCE מטרים [סוג נתונים: Double] מחושב ממיקום מבוסס-GPS כשהוא זמין, ומצעדים אחרת. הסכום הכולל מתייחס לסכום הכולל במהלך התרגיל, לא כולל הזמן שבו התרגיל מושהה.
מהירות ‫[meters / second] ‫[סוג נתונים: Double] הפונקציה מחזירה את הערכים המינימליים, המקסימליים והממוצעים. הנתונים האלה מתייחסים למשך האימון, לא כולל הזמן שבו האימון מושהה.
קצב ‫[seconds / meter] [סוג נתונים: Double] ערך ברירת המחדל הוא 0 אם המהירות היא 0. החישובים הממוצעים מתבצעים על משך התרגיל, לא כולל הזמן שבו התרגיל מושהה.
ELEVATION_GAIN מטרים. ‫[Data type: Double] שינויים חיוביים בגובה. הנתון הכולל מדווח על פני משך האימון, לא כולל הזמן שבו האימון מושהה.
TOTAL_CALORIES kCal [סוג נתונים: Double] קלוריות שנשרפו בזמן פעילות, שנוספו לקצב חילוף החומרים הבסיסי. חישוב הקלוריות שמוצג כאן מתבסס על הגובה, המשקל, הגיל והמגדר של המשתמש, כפי שצוין בהגדרות המערכת. הקלוריות לא כוללות נתונים מפרופיל המשתמש שנאספו באפליקציה. הסכום הכולל שמוצג הוא של משך האימון, לא כולל הזמן שבו האימון מושהה.

סוגי נתונים אופציונליים של פעילות גופנית

רשימת סוגי הנתונים הבאה זמינה רק במכשירים מסוימים. DataTypes לרשימה מלאה של אם DataType לא מופיע ברשימה הקודמת של 'חובה/מובטח', הוא אופציונלי.

בהמשך מפורטות דוגמאות לסוגי נתונים אופציונליים. זוהי רשימה חלקית בלבד:

טבלה 2: דוגמאות לסוגים אופציונליים של נתוני פעילות גופנית
מדד הנתונים הצפויים הערות לגבי התנהגויות צפויות
ABSOLUTE_ELEVATION ‫[Data type: Double]
ELEVATION_LOSS מטרים [סוג נתונים: Double] שינויים שליליים בגובה. הערך חיובי. לדוגמה, אם יש ירידה של מטר אחד בגובה, הפונקציה מחזירה 1 ולא ‎-1.
STEPS_PER_MINUTE [סוג נתונים: Long]
WHEELCHAIR_PUSHES [סוג נתונים: Long] מספר הדחיפות של כיסא הגלגלים לשימוש בתרגילים שמבוססים על כיסא גלגלים.
REP_COUNT [סוג נתונים: Long]
SWIM_STROKE_COUNT [סוג נתונים: Long]
SWIM_LAP_COUNT [סוג נתונים: Long]

סוגי נתונים לכל תרגיל

סוגי נתונים שונים מוחזרים עבור כל סוג פעילות. סוגי הנתונים שמוחזרים תואמים לצרכים של התרגיל. לדוגמה, סוג הפעילות BIKING (רכיבה על אופניים) לא מחזיר את סוג הנתונים STEPS (צעדים). משתמשים בשיטה Capabilities בזמן הריצה כדי לקבוע אילו סוגי נתונים נתמכים במכשיר של המשתמש.

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

הנה כמה דוגמאות:

  • בתרגילים כמו מדיטציה או פילאטיס נתמכים רק נתונים של דופק וקלוריות
  • באימונים כמו כדורסל או בדמינטון יש תמיכה במדדים של דופק, קלוריות, מרחק וצעדים.
  • תרגילים כמו הליכה וריצה תומכים במדדים הבאים: דופק, קלוריות, מרחק, צעדים, מהירות וקצב
  • באימוני שחייה יש תמיכה בדופק, בקלוריות, במרחק ובאורכים של בריכת השחייה

Passive Monitoring Client

סוגי הנתונים הבאים נדרשים בכל המכשירים שמופעלת בהם מערכת Wear OS כדי לתמוך באפליקציות שעוקבות באופן פסיבי אחרי נתוני בריאות וכושר, כמו דופק
ומספר הצעדים. כל אחד מסוגי הנתונים האלה צריך להיות נגזר אך ורק מנתונים שנוצרו על ידי חיישנים בשעון.

התנהגויות צפויות

כדי לחסוך בחשמל, קריאות החיישנים שמתקבלות באמצעות מעקב פסיבי מאוחסנות ב-MCU ונשלחות באצווה ל-Health Services. התוצאות האלה מוחזרות במרווחי זמן שונים, בהתאם להתנהגות המערכת. דוגמאות לכך הן החזרת קבוצות של נתונים כשמאגרי הנתונים הזמניים של החיישנים מלאים, או כשהמשתמש מקיים אינטראקציה עם התצוגה.

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

סוגי נתונים של מעקב פסיבי

טבלה 3: סוגי הנתונים הנדרשים לניטור פסיבי במכשירי Wear OS
מדד הנתונים הצפויים הערות
HEART_RATE_BPM פעימות לדקה [סוג נתונים: Double] יכול להיות שהמכשירים יחזירו קריאות של קצב הלב במרווחי זמן שונים. יכול להיות שחלק מהמכשירים יקראו את הנתונים כל שנייה. יכול להיות שמכשירים אחרים יקראו את הנתונים כל עשר דקות. האפליקציות לא יכולות לגשת למרווחי הזמן האלה. אפליקציות צריכות להתאים את עצמן בצורה חלקה למרווחי דגימה שונים.
STEPS_DAILY/STEPS [סוג נתונים: Long] מספר הצעדים היומי הוא המספר הכולל של הצעדים שנעשו מאז האיפוס האחרון, שמופעל על ידי WHS בחצות. הנתון הזה כולל את כל השלבים שבוצעו בזמן שהתרגיל הפעיל היה בהשהיה. המדד Steps הוא דלתא גרנולרית מאז הבדיקה האחרונה.
DISTANCE_DAILY/DISTANCE מטרים [סוג נתונים: Double] מחושב מנתוני מד התאוצה או מספר הצעדים. לא לחשב במהלך השימוש ב-GPS כדי להבטיח שמשתמשים שהשביתו את שירותי המיקום עדיין יוכלו לקבל נתונים מדויקים של מספר הצעדים.
מהירות ‫[meters / second] ‫[סוג נתונים: Double]
CALORIES_DAILY kCal [סוג נתונים: Double] קלוריות ליום, כולל קלוריות בפעילות וקצב חילוף חומרים בסיסי (BMR). נתון הקלוריות שמוצג כאן מתייחס לגובה, למשקל, לגיל ולמגדר של המשתמש, כפי שצוינו בהגדרות המערכת. הערך הקלורי לא מותאם לפי נתוני פרופיל משתמש שנאספים באפליקציה שלך.
RUNNING_STEPS (אופציונלי) [סוג נתונים: Long] ההפרש במספר הצעדים במהלך אימון ובזמנים אחרים. לעקוב אחרי שניהם בו-זמנית.
WALKING_STEPS (אופציונלי) [סוג נתונים: Long]
ELEVATION_GAIN מטרים [סוג נתונים: Double] כולל רק את השינויים החיוביים בגובה
ELEVATION_LOSS מטרים [סוג נתונים: Double] כולל רק את הדלתאות השליליות בגובה
FLOORS_DAILY ‫[Data type: Double] יכול להיות שיוצגו כקומות חלקיות

יעדים יומיים של מעקב פסיבי

טבלה 4: מדדי יעדים יומיים של מעקב פסיבי
מדד הנתונים הצפויים הערות
STEPS_DAILY [סוג נתונים: Long] מספר הצעדים היומי, כולל כל הצעדים שנעשו בזמן שפעילות גופנית פעילה הייתה מושהית, הוא המספר הכולל של הצעדים שנעשו מאז האיפוס האחרון. ההגדרות של WHS מתאפסות בחצות.
FLOORS_DAILY ‫[Data type: Double] יכול להיות שיוצגו כחלקים של מדרגות.
CALORIES_DAILY kCal [סוג נתונים: Double] קלוריות ליום, כולל קלוריות בפעילות ו-BMR.
DISTANCE_DAILY מטרים [סוג נתונים: Double] מחושב ממד התאוצה או ממספר הצעדים. אל תשתמשו ב-GPS כדי לחשב את הנתון הזה, כדי שמשתמשים שהשביתו את שירותי המיקום עדיין יוכלו לקבל נתונים מדויקים של מספר הצעדים.
DAILY_ELEVATION_GAIN מטרים [סוג נתונים: Double] כולל רק את השינויים החיוביים בגובה

MeasureClient

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

התנהגויות צפויות

יש כמה דברים דומים בין MeasureClient לבין PassiveClient. שניהם מספקים נתונים סטטיסטיים לגבי בריאות שלא קשורים לפעילות גופנית. אפשר להשתמש בשני המדדים כדי למדוד את הדופק, אבל ההבדל העיקרי הוא שהמדד MeasureClient כולל את נתוני הזמינות של הדופק, אבל המדד PassiveClient לא כולל את נתוני הזמינות.

סוגי הנתונים

טבלה 5: MeasureClient סוגי נתונים
מדד הנתונים הצפויים הערות
HEART_RATE_BPM פעימות לדקה [סוג נתונים: Double] כולל גם זמינות

תכונות נתמכות

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

טריגרים לאירועים

כל המכשירים תומכים בטריגרים הנפוצים הבאים:

  • יעדים יומיים למרחק ולצעדים
  • יעדי פעילות גופנית למספר הצעדים, למרחק ולמשך הפעילות.

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

  • ספירת הקפות בשחייה
  • יעדי פעילות גופנית לפי קלוריות שנשרפו
  • יעדי אימון למהירות מיידית

מדינות

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

יכול להיות שבמכשירים אחרים יש פונקציות נוספות שקשורות למצב. פונקציות נוספות של מצב הפעילות כוללות זיהוי של הפסקה אוטומטית או חידוש אוטומטי של פעילות, או זיהוי של מצב הערות או השינה של המשתמש.

התראות לגבי תקינות במעקב פסיבי

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