بررسی دردسترس بودن ویژگی

وقتی ویژگی‌های جدیدی به Health Connect اضافه می‌شود، ممکن است کاربران همیشه نسخه Health Connect خود را به‌روز نکنند. «میانای برنامه‌سازی کاربردی دردسترس بودن ویژگی» روشی برای بررسی این است که آیا ویژگی‌ای در Health Connect در دستگاه کاربر دردسترس است یا نه و تصمیم‌گیری درباره اینکه چه اقدامی باید انجام شود.

شروع کنید

Feature Availability API وابستگی یکسانی با Health Connect SDK دارد. برای شروع، بررسی کنید که حداقل نسخه 1.1.0-alpha08 در فایل build.gradle شما وجود داشته باشد:

dependencies {
  implementation("androidx.health.connect:connect-client:1.2.0-alpha06")
}

پرچم‌های ویژه

پرچم‌های ویژگی دردسترس برای Health Connect در جدول زیر فهرست شده‌اند. اگر دستگاه کاربر از ویژگی پشتیبانی نکند، عملکرد پشت پرچم ویژگی برای استفاده دردسترس نخواهد بود.

جدول: پرچم‌های دردسترس بودن ویژگی Health Connect
پرچم ویژگی نوع داده راهنماهای مرتبط
FEATURE_ACTIVITY_INTENSITY شدت فعالیت تمرینات
FEATURE_EXTENDED_DEVICE_TYPES انواع دستگاه‌های گسترش‌یافته الزامات فراداده
FEATURE_MATCHMAKING یافتن حریف
FEATURE_PERSONAL_HEALTH_RECORD سوابق پزشکی قالب داده‌های «سوابق پزشکی»
نوشتن داده‌های پزشکی
خواندن داده‌های پزشکی
FEATURE_MINDFULNESS_SESSION ذهن‌آگاهی ردگیری ذهن‌آگاهی
FEATURE_PLANNED_EXERCISE تمرین برنامه‌ریزی‌شده تمرینات
طرح‌های تمرین
FEATURE_READ_HEALTH_DATA_IN_BACKGROUND خواندن داده‌ها در پس‌زمینه نمونه خواندن در پس‌زمینه
FEATURE_READ_HEALTH_DATA_HISTORY خواندن داده‌های تاریخی خواندن داده‌های قدیمی‌تر از ۳۰ روز
FEATURE_SKIN_TEMPERATURE دمای پوست علائم حیاتی
اندازه‌گیری دمای پوست

انجام بررسی

تابع اصلی برای بررسی دردسترس بودن ویژگی getFeatureStatus() است. این کار ثابت‌های عدد صحیح FEATURE_STATUS_AVAILABLE یا FEATURE_STATUS_UNAVAILABLE را برمی‌گرداند:

برای تعیین اینکه آیا دستگاه کاربر از «خواندن داده‌های سلامتی در پس‌زمینه» در Health Connect پشتیبانی می‌کند یا نه، دردسترس بودن FEATURE_READ_HEALTH_DATA_IN_BACKGROUND را در کارخواه بررسی کنید:

if (healthConnectClient
     .features
     .getFeatureStatus(
       HealthConnectFeatures.FEATURE_READ_HEALTH_DATA_IN_BACKGROUND
     ) == HealthConnectFeatures.FEATURE_STATUS_AVAILABLE) {

  // Feature is available
} else {
  // Feature isn't available
}

برای مشاهده فهرست همه پرچم‌های ویژگی دردسترس، به صفحه مرجع HealthConnectFeatures مراجعه کنید.

مدیریت کردن عدم دسترسی به ویژگی

اگر ویژگی‌ای در دستگاه کاربر دردسترس نباشد، ممکن است به‌روزرسانی آن را فعال کند. اگر کاربر جدیدترین نسخه پشتیبانی‌شده را در دستگاهش ندارد، می‌توانید او را راهنمایی کنید Health Connect را به‌روز کند. بااین‌حال، کاربرانی که از APK استفاده می‌کنند (در Android 13 و پایین‌تر) نمی‌توانند از ویژگی‌های ماژول سیستم که فقط در دستگاه‌های دارای Android 14 یا بالاتر دردسترس است استفاده کنند.

برای انواع دستگاه‌های گسترش‌یافته، اگر FEATURE_EXTENDED_DEVICE_TYPES در دستگاه کاربر دردسترس نباشد، آن مقادیر به‌عنوان Device.TYPE_UNKNOWN درنظر گرفته می‌شوند. در منطق نوشتن و میانای کاربر خود، یک جایگزین منطقی ارائه دهید.