بهبود سازگاری برنامه در دستگاه‌های Wear OS

میانای برنامه‌سازی کاربردی Wear Health Services (WHS) مؤلفه‌ای اجباری برای همه دستگاه‌های دارای Wear OS 3 و بالاتر است، زیرا سطح ادغام ثابتی را برای توسعه‌دهندگان سلامتی و تناسب اندام فراهم می‌کند. برنامه‌تان را طوری بسازید که به‌خوبی با دستگاه‌های مختلف و قابلیت‌های متفاوت آن‌ها سازگار شود تا سازگاری در دستگاه‌های مختلف حفظ شود و از بروز مشکلات در تجربه کاربری جلوگیری شود. برای انجام این کار، وابستگی‌ها را فقط برای کارخواه‌هایی که برنامه‌تان استفاده می‌کند اعلام کنید. علاوه‌براین، به برنامه‌تان اجازه دهید تا انعطاف‌پذیری لازم را برای نمایش یا برداشتن سنجه‌های پیشرفته اختیاری براساس دردسترس بودن آن‌ها داشته باشد.

حسگرهای مختلف داده‌ها را با فرکانس‌های مختلفی تولید می‌کنند که بسته به سخت‌افزار و پلتفرم حسگر در هر دستگاه متفاوت است. برای مثال، دستگاه ممکن است ضربان قلب را در یک مُهر زمان و مکان را در مُهر زمان دیگری برگرداند. برنامه‌هایی ایجاد کنید که بتوانند جریان‌های داده مستقل را در مُهرهای زمان متفاوت یا در مُهرهای زمان هم‌پوشان دریافت کنند.

این راهنما رفتارهای موردانتظار و انواع داده‌های پشتیبانی‌شده توسط مشتریان مختلف را در «خدمات سلامت Wear» شرح می‌دهد.

کارخواه تمرین

بخش‌های زیر رفتارها و انواع داده‌های موردانتظار ExerciseClient را شرح می‌دهد.

رفتارهای موردانتظار

برای ExerciseClient، برخی‌از انواع تمرین به دردسترس بودن انواع خاصی از داده‌ها بستگی دارد. برای مثال، تمرینات با صندلی چرخدار فقط درصورتی دردسترس است که هل دادن صندلی چرخدار پشتیبانی شود. این گزینه‌ها را براساس دردسترس بودنشان در دستگاه موردنظر فعال و غیرفعال کنید.

اکثر انواع داده‌های تمرین ورزشی در فواصل یک ثانیه‌ای نمونه‌برداری و ارائه می‌شوند، با چند استثنا:

  • در برخی شرایط، بعضی‌از انواع داده‌های تمرین بیش‌از یک بار در ثانیه به‌روزرسانی می‌شوند. برای مثال، وقتی کاربر درحال دویدن است، تعداد قدم‌ها بیشتر از یک بار در ثانیه به‌روز می‌شود.
  • برای برخی‌از انواع داده، به‌روزرسانی فقط درصورتی ارائه می‌شود که مقدار فعلی با مقدار قبلی متفاوت باشد.

ارسال داده می‌تواند به‌صورت جاری‌سازی یا دسته‌ای باشد. داده‌ها زمانی جاری‌سازی می‌شوند که پردازنده برنامه‌ها روشن باشد، که معمولاً زمانی است که نمایشگر روشن و تعاملی است. وقتی نمایشگر خاموش می‌شود یا به حالت محیطی (روشن اما غیرتعاملی) می‌رود، داده‌ها برای صرفه‌جویی در مصرف باتری دسته‌بندی می‌شوند. داده‌های دسته‌ای یا زمانی که پردازنده برنامه دوباره روشن می‌شود، یا به‌دلیل خروج ساعت از حالت محیطی، یا زمانی که بافرهای دسته‌بندی پر می‌شوند، که بسته به دستگاه متفاوت است، به برنامه تحویل داده می‌شوند. وقتی دستگاه در حالت محیطی است، نرخ نمونه‌برداری یکسان باقی می‌ماند، بنابراین دسته‌ای که تحویل داده می‌شود همچنان دارای نقاط داده با فرکانس بالا است.

«انواع داده» صرفاً از داده‌های تولیدشده توسط حسگرهای ساعت مشتق می‌شوند. برای مثال، داده‌های مکان کاملاً از ساعت دریافت می‌شود و نه از تلفن.

انواع داده

ExerciseClient API به شما امکان می‌دهد تمرینات از انواع مختلف را شروع، موقتاً متوقف، ازسرگیری، و متوقف کنید. برای هر تمرین، WHS مجموعه‌ای از انواع داده را تعریف می‌کند که برای آن نوع تمرین دردسترس شما قرار می‌گیرد. این کار باعث صرفه‌جویی در مصرف انرژی و ساده‌سازی منطق برنامه شما می‌شود، زیرا حسگرهایی که برای یک تمرین خاص موردنیاز نیستند، روشن نمی‌شوند. برای مثال، هنگام شروع دویدن، داده‌های مکان فقط برای دویدن در فضای باز ارائه و ردیابی می‌شود. هنگام شروع تمرین دوچرخه‌سواری، تعداد قدم‌ها ارائه یا ردیابی نمی‌شود. بخش‌های زیر شرحی از انواع داده‌هایی را ارائه می‌دهند که در ExerciseClient پشتیبانی می‌شوند.

انواع داده‌های تمرین ورزشی دردسترس در همه دستگاه‌ها

انواع داده‌های تمرین زیر در همه دستگاه‌ها دردسترس است.

  • انواع داده‌های نمونه دارای یک نوع داده STATS_ متناظر هستند که حداقل، حداکثر، و مقادیر میانگین تمرین را برمی‌گرداند. برای مثال، آمار PACE را می‌توان با «نوع داده» PACE_STATS استخراج کرد.
  • انواع داده‌های بازه‌ای دارای یک نوع داده TOTAL_ متناظر هستند که مقدار تجمعی تمرین را برمی‌گرداند. برای مثال، آمار «مسافت» را می‌توان با نوع داده DISTANCE_TOTAL استخراج کرد.
جدول ۱: انواع داده‌های تمرین ورزشی دردسترس در همه دستگاه‌ها
سنجه داده‌های موردانتظار نکاتی درباره رفتارهای موردانتظار
HEART_RATE_BPM ضربان در دقیقه [DataType: Double] همه دستگاه‌ها درطول تمرین، ضربان قلب را یک بار در ثانیه نمونه‌برداری می‌کنند. برخی دستگاه‌ها مقدار BPM را هر ثانیه گزارش می‌کنند. برخی‌از دستگاه‌ها فقط زمانی BPM را گزارش می‌کنند که نسبت‌به مقدار قبلی تغییر کرده باشد. انتظار نداشته باشید که در همه دستگاه‌ها، مقدار BPM را در هر فاصله یک ثانیه‌ای دریافت کنید.
موقعیت مکانی طول و عرض جغرافیایی [DataType: Double] داده‌های مکان فقط براساس GPS ساعت است. انتظار نداشته باشید داده‌های مکان از «ارائه‌دهنده تلفیقی مکان» یا دیگر سرویس‌های Android دریافت شود). هر نقطه داده همچنین شامل مقدار دقت (که به‌عنوان خطای موقعیت افقی نیز شناخته می‌شود) و دردسترس بودن است.
مراحل [نوع داده: بلند] تعداد قدم‌ها مجموع درحال اجرا درطول مدت تمرین است، شامل زمانی که تمرین موقتاً متوقف شده است نمی‌شود
فاصله متر [نوع داده: Double] درصورت دردسترس بودن، از مکان مبتنی بر GPS محاسبه می‌شود و درغیراین‌صورت، از تعداد قدم‌ها. «کل» به کل مدت تمرین اشاره دارد و شامل زمانی که تمرین موقتاً متوقف شده است نمی‌شود.
سرعت [متر / ثانیه] [نوع داده: Double] مقادیر حداقل، حداکثر، و میانگین را برمی‌گرداند. این موارد درطول مدت تمرین است و شامل زمانی که تمرین موقتاً متوقف شده است نمی‌شود.
سرعت [ثانیه / متر] [نوع داده: Double] اگر سرعت ۰ باشد، مقدار پیش‌فرض ۰ است. میانگین‌ها درطول مدت تمرین محاسبه می‌شوند و شامل زمانی که تمرین موقتاً متوقف شده است نمی‌شوند.
ELEVATION_GAIN متر. [نوع داده: Double] تغییرات مثبت در ارتفاع. کل مقدار درطول مدت تمرین گزارش می‌شود و شامل زمانی که تمرین موقتاً متوقف شده است نمی‌شود.
TOTAL_CALORIES کیلوکالری [نوع داده: Double] کالری سوزانده‌شده درطول فعالیت به «سرعت سوخت‌وساز پایه» اضافه می‌شود. کالری‌های ارائه‌شده در اینجا قد، وزن، سن، و جنسیت کاربر را که در تنظیمات سیستم مشخص شده است درنظر می‌گیرد. کالری‌ها هیچ‌کدام از داده‌های نمایه کاربر را که در برنامه‌تان جمع‌آوری شده است درنظر نمی‌گیرند. مجموع گزارش‌شده مربوط به مدت تمرین است و زمان توقف تمرین را شامل نمی‌شود.

انواع داده‌های تمرین اختیاری

فهرست انواع داده‌های زیر فقط در برخی‌از دستگاه‌ها دردسترس است. برای فهرست کامل DataTypes، به مرجع Jetpack مراجعه کنید. اگر DataType در فهرست «الزامی/تضمینی» قبلی نباشد، اختیاری است.

نمونه‌های زیر را از انواع داده‌های اختیاری ببینید. این فهرست کامل نیست:

جدول ۲: نمونه‌هایی از انواع داده‌های اختیاری تمرین
سنجه داده‌های موردانتظار نکاتی درباره رفتارهای موردانتظار
ABSOLUTE_ELEVATION [نوع داده: Double]
کاهش ارتفاع متر [نوع داده: Double] تغییرات منفی در ارتفاع. مقدار مثبت است. برای مثال، کاهش ارتفاع ۱ متری به‌صورت ۱ برگردانده می‌شود، نه ۱-.
STEPS_PER_MINUTE [نوع داده: بلند]
WHEELCHAIR_PUSHES [نوع داده: بلند] تعداد دفعات هل دادن صندلی چرخدار برای استفاده در تمرینات مبتنی بر صندلی چرخدار.
REP_COUNT [نوع داده: بلند]
SWIM_STROKE_COUNT [نوع داده: بلند]
SWIM_LAP_COUNT [نوع داده: بلند]

انواع داده برای هر تمرین

برای هر نوع تمرین، انواع داده‌های متفاوتی برگردانده می‌شود. انواع داده‌ای که برگردانده می‌شود با نیازهای تمرین مطابقت دارد. برای مثال، «نوع تمرین» دوچرخه‌سواری «نوع داده» تعداد قدم‌ها را برنمی‌گرداند. از روش Capabilities در زمان اجرا استفاده کنید تا مشخص شود کدام نوع داده‌ها در دستگاه کاربر پشتیبانی می‌شود.

حداقل، همه انواع تمرین داده‌های ضربان قلب و کالری را برمی‌گردانند. سایر تمرین‌ها ممکن است از انواع داده‌های اضافی پشتیبانی کنند، که این امر به الزامات تمرین بستگی دارد.

در اینجا چند مثال آورده شده است:

  • تمرین‌هایی مثل مدیتیشن یا پیلاتس فقط از ضربان قلب و کالری پشتیبانی می‌کنند
  • تمرین‌هایی مثل بسکتبال یا بدمینتون از ضربان قلب، کالری، مسافت، و تعداد قدم‌ها پشتیبانی می‌کنند.
  • تمرین‌هایی مثل پیاده‌روی و دویدن از ضربان قلب، کالری، مسافت، تعداد قدم‌ها، سرعت، و گام پشتیبانی می‌کنند
  • شنا از ضربان قلب، کالری، مسافت، و دورهای شنا پشتیبانی می‌کند

Passive Monitoring Client

«انواع داده» زیر برای همه دستگاه‌های دارای Wear OS الزامی است تا از برنامه‌هایی که به‌طور غیرفعال داده‌های سلامتی و تناسب اندام مانند ضربان قلب
و تعداد قدم‌ها را پایش می‌کنند پشتیبانی کنند. هرکدام از این «انواع داده» باید صرفاً از داده‌های تولیدشده توسط حسگرهای ساعت مشتق شده باشند.

رفتارهای موردانتظار

برای صرفه‌جویی در مصرف برق، خوانش‌های حسگر به‌دست‌آمده بااستفاده از «پایش غیرفعال» در MCU ذخیره می‌شوند و به‌صورت دسته‌ای به «خدمات سلامتی» ارسال می‌شوند. این نتایج دسته‌ای در فواصل زمانی مختلف بسته به رفتار سیستم برگردانده می‌شوند. برخی‌از نمونه‌ها عبارت‌اند از برگرداندن دسته‌ها وقتی میان‌گیرهای حسگر پر است، یا وقتی کاربر با نمایشگر تعامل دارد.

هیچ فاصله زمانی گروه‌بندی ازپیش تعریف‌شده یا قابل‌پیش‌بینی‌ای را برای هیچ نوع داده‌ای فرض نکنید.

انواع داده‌های پایش منفعل

جدول ۳: انواع داده‌های پایش غیرفعال موردنیاز برای دستگاه‌های Wear OS
سنجه داده‌های موردانتظار نکته‌ها
HEART_RATE_BPM ضربان در دقیقه [نوع داده: Double] دستگاه‌ها ممکن است خوانش‌های ضربان قلب را در فاصله‌های زمانی مختلف برگردانند. برخی دستگاه‌ها ممکن است هر ثانیه خوانش انجام دهند. دستگاه‌های دیگر ممکن است هر ده دقیقه یک‌بار خوانش انجام دهند. این فاصله‌ها برای برنامه‌ها دردسترس قرار نمی‌گیرد. برنامه‌ها باید به‌خوبی با فاصله‌های زمانی نمونه‌برداری مختلف سازگار شوند.
STEPS_DAILY/STEPS [نوع داده: بلند] قدم‌های روزانه تعداد کل قدم‌های برداشته‌شده از آخرین بازنشانی است، که توسط WHS در نیمه‌شب راه‌اندازی می‌شود. این شامل هر گامی است که درحین توقف موقت تمرین فعال برداشته شده است. مراحل، دلتای دانه‌ای از آخرین بررسی است.
DISTANCE_DAILY/DISTANCE متر [نوع داده: Double] محاسبه‌شده از شتاب‌سنج/گام‌ها. برای اطمینان از اینکه کاربرانی که خدمات مکان را خاموش کرده‌اند همچنان می‌توانند تعداد گام‌های دقیقی دریافت کنند، درطول GPS محاسبه نکنید.
سرعت [متر / ثانیه] [نوع داده: Double]
CALORIES_DAILY کیلوکالری [نوع داده: Double] کالری‌های روز، ازجمله کالری‌های فعال و نرخ سوخت‌وساز پایه. رقم کالری که در اینجا منتشر می‌شود، قد، وزن، سن، و جنسیت کاربر را همان‌طور که در تنظیمات سیستم مشخص شده است درنظر می‌گیرد. کالری‌ها براساس داده‌های نمایه کاربر که در برنامه‌تان جمع‌آوری شده است اصلاح نمی‌شود.
RUNNING_STEPS (اختیاری) [نوع داده: بلند] تغییرات تعداد قدم‌ها هم درطول تمرین و هم در مواقع دیگر. هر دو را هم‌زمان ردیابی کنید.
WALKING_STEPS (اختیاری) [نوع داده: بلند]
ELEVATION_GAIN متر [نوع داده: Double] فقط شامل دلتاهای مثبت در ارتفاع می‌شود
کاهش ارتفاع متر [نوع داده: Double] فقط شامل دلتاهای منفی در ارتفاع است
FLOORS_DAILY [نوع داده: Double] می‌تواند به‌عنوان طبقات «جزئی» نشان داده شود

اهداف روزانه پایش منفعل

جدول ۴: سنجه‌های اهداف روزانه پایش غیرفعال
سنجه داده‌های موردانتظار نکته‌ها
STEPS_DAILY [نوع داده: بلند] تعداد قدم‌های روزانه، ازجمله قدم‌هایی که درحین توقف موقت تمرین فعال برداشته شده است، تعداد کل قدم‌هایی است که از آخرین بازنشانی برداشته شده است. «ساعت‌های تماشای واجدشرایط» در نیمه‌شب بازنشانی می‌شود.
FLOORS_DAILY [نوع داده: Double] می‌تواند به‌عنوان طبقات «جزئی» پله‌ها نشان داده شود.
CALORIES_DAILY کیلوکالری [نوع داده: Double] کالری‌های روزانه که شامل کالری‌های فعال و نرخ سوخت‌وساز پایه می‌شود.
DISTANCE_DAILY متر [نوع داده: Double] محاسبه‌شده از شتاب‌سنج یا تعداد قدم‌ها. این مقدار را بااستفاده از GPS محاسبه نکنید تا کاربرانی که خدمات مکان را خاموش کرده‌اند همچنان بتوانند تعداد گام‌های دقیقی دریافت کنند.
DAILY_ELEVATION_GAIN متر [نوع داده: Double] فقط شامل دلتاهای مثبت در ارتفاع می‌شود

MeasureClient

از MeasureClient برای اندازه‌گیری ضربان قلب در لحظه‌ای خاص استفاده کنید.

رفتارهای موردانتظار

MeasureClient و PassiveClient از برخی جهات شبیه هستند. هر دو آمار سلامتی غیردسته‌ای را که به تمرین مربوط نیست ارائه می‌دهند. می‌توانید از هر دو برای اندازه‌گیری ضربان قلب استفاده کنید، اما تفاوت اصلی این است که MeasureClient شامل دردسترس بودن داده‌های ضربان قلب است، اما PassiveClient شامل اطلاعات دردسترس بودن نیست.

انواع داده

جدول ۵: انواع داده MeasureClient
سنجه داده‌های موردانتظار نکته‌ها
HEART_RATE_BPM ضربان در دقیقه [نوع داده: Double] همچنین شامل دردسترس بودن می‌شود

ویژگی‌های پشتیبانی‌شده

علاوه‌بر «انواع داده‌های تمرین» و «انواع داده‌های پایش غیرفعال»، دستگاه‌ها از ویژگی‌های اضافی برای راه‌اندازی رویدادهایی مانند شروع تمرین و اندازه‌گیری وضعیت‌هایی مانند خواب درمقابل بیداری پشتیبانی می‌کنند. برخی‌از این ویژگی‌ها در همه دستگاه‌ها وجود دارند و برخی دیگر فقط در بعضی‌از دستگاه‌ها وجود دارند.

راه‌اندازهای رویداد

همه دستگاه‌ها از راه‌اندازهای رایج زیر پشتیبانی می‌کنند:

  • اهداف روزانه برای مسافت و تعداد قدم‌ها
  • اهداف تمرین برای تعداد قدم‌ها، مسافت، و مدت‌زمان.

دستگاه‌های دیگر ممکن است از راه‌اندازهای رویداد پیشرفته‌تری پشتیبانی کنند. چند نمونه شامل موارد زیر است:

  • شمارش دورها هنگام شنا کردن
  • اهداف تمرین برای کالری سوزانده‌شده
  • اهداف تمرین برای سرعت لحظه‌ای

ایالت‌ها

همه دستگاه‌ها از عملکرد وضعیت پایه پشتیبانی می‌کنند. عملکرد وضعیت به این اشاره دارد که آیا کاربر درحال تمرین فعال است یا نه.

دستگاه‌های دیگر ممکن است عملکرد وضعیت بیشتری ارائه دهند. برخی‌از عملکردهای اضافی وضعیت شامل تشخیص اینکه آیا تمرین به‌طور خودکار موقتاً متوقف شده یا به‌طور خودکار ازسر گرفته شده است، یا اینکه کاربر بیدار است یا خوابیده است.

هشدارهای سلامتی در پایش غیرفعال

برخی‌از دستگاه‌ها از هشدارهای سلامتی پشتیبانی می‌کنند. این ویژگی‌ها در همه دستگاه‌ها پشتیبانی نمی‌شود. برخی‌از هشدارهای سلامتی شامل تشخیص ناهنجاری‌های ضربان قلب یا تشخیص افتادن است.