این راهنما با Health Connect نسخه 1.1.0-alpha12 سازگار است.
تغییراتی در ابرداده در Health Connect برای توسعه دهندگانی که تصمیم به ارتقای نسخه 1.1.0-alpha12 دارند، وجود دارد.
اطلاعات کتابخانه
شناسه مصنوع پلاگین Google Maven Android gradle کتابخانه Health Connect را شناسایی می کند که باید به آن ارتقا دهید. این وابستگی Health Connect SDK را به فایل build.gradle
در سطح ماژول خود اضافه کنید:
dependencies {
implementation "androidx.health.connect:connect-client:1.1.0-alpha12"
}
متادیتا تغییر می کند
دو تغییر ابرداده در نسخه 1.1.0-alpha12 به Health Connect Jetpack SDK معرفی شده است تا اطمینان حاصل شود که ابرداده مفید اضافی در اکوسیستم وجود دارد.
روش ضبط را مشخص کنید
هر زمان که یک شی از نوع Record()
نمونه سازی می شود، باید جزئیات فراداده را مشخص کنید.
هنگام نوشتن داده در Health Connect باید یکی از چهار روش ضبط را مشخص کنید:
روش ضبط | توضیحات |
---|---|
RECORDING_METHOD_UNKNOWN | روش ضبط قابل تأیید نیست. |
RECORDING_METHOD_MANUAL_ENTRY | کاربر داده ها را وارد کرد. |
RECORDING_METHOD_AUTOMATICALLY_RECORDED | یک دستگاه یا حسگر داده ها را ثبت کرد. |
RECORDING_METHOD_ACTIVELY_RECORDED | کاربر شروع یا پایان جلسه ضبط را در یک دستگاه آغاز کرد. |
به عنوان مثال:
StepsRecord(
startTime \= Instant.ofEpochMilli(1234L),
startZoneOffset \= null,
endTime \= Instant.ofEpochMilli(1236L),
endZoneOffset \= null,
metadata \= Metadata.manualEntry(),
Count \= 10,
)
نوع دستگاه
شما باید یک نوع دستگاه را برای همه داده های ضبط شده به طور خودکار و فعال مشخص کنید. انواع دستگاه های فعلی عبارتند از:
نوع دستگاه | توضیحات |
---|---|
TYPE_UNKNOWN | نوع دستگاه مشخص نیست. |
TYPE_WATCH | نوع دستگاه ساعت است. |
TYPE_PHONE | نوع دستگاه گوشی است. |
TYPE_SCALE | نوع دستگاه ترازو است. |
TYPE_RING | نوع دستگاه حلقه ای است. |
TYPE_HEAD_MOUNTED | نوع دستگاه یک دستگاه نصب شده روی سر است. |
TYPE_FITNESS_BAND | نوع دستگاه یک باند تناسب اندام است. |
TYPE_CHEST_STRAP | نوع دستگاه بند سینه است. |
TYPE_SMART_DISPLAY | نوع دستگاه نمایشگر هوشمند است. |
برخی از مقادیر Device.type
فقط در نسخههای بعدی Health Connect در دسترس هستند. هنگامی که ویژگی انواع دستگاه های توسعه یافته در دسترس نباشد، این انواع به عنوان Device.TYPE_UNKNOWN
تلقی می شوند.TYPE_UNKNOWN .
انواع دستگاه های توسعه یافته | توضیحات |
---|---|
TYPE_CONSUMER_MEDICAL_DEVICE | نوع دستگاه دستگاه پزشکی است. |
TYPE_GLASSES | نوع دستگاه یک جفت عینک یا عینک هوشمند است. |
TYPE_HEARABLE | نوع دستگاه یک دستگاه شنیدنی است. |
TYPE_FITNESS_MACHINE | نوع دستگاه دستگاه ثابت است. |
TYPE_FITNESS_EQUIPMENT | نوع دستگاه یک دستگاه تناسب اندام است. |
TYPE_PORTABLE_COMPUTER | نوع دستگاه یک کامپیوتر قابل حمل است. |
TYPE_METER | نوع دستگاه یک متر اندازه گیری است. |
FEATURE_EXTENDED_DEVICE_TYPES
را در سرویس گیرنده بررسی کنید:if (healthConnectClient
.features
.getFeatureStatus(
HealthConnectFeatures.FEATURE_EXTENDED_DEVICE_TYPES
) == HealthConnectFeatures.FEATURE_STATUS_AVAILABLE) {
// Feature is available
} else {
// Feature isn't available
}
در صورت امکان، سازنده و مدل دستگاه را علاوه بر نوع دستگاه ارائه دهید. به عنوان مثال:
private val TEST_DEVICE = Device(
manufacturer = "Google",
model = "Pixel Watch",
type = Device.TYPE_WATCH
)
قطعه ها به روز شدند
راهنماهای Health Connect در هر جا که برای پایبندی به الزامات فراداده جدید به قطعههای جدید نیاز باشد، بهروزرسانی شدهاند. برای چند نمونه به صفحه Write Data مراجعه کنید.
روش های جدید ابرداده
دیگر نمیتوان متادیتا را مستقیماً نمونهسازی کرد، بنابراین از یکی از روشهای کارخانه برای دریافت نمونه جدیدی از ابرداده استفاده کنید. هر تابع دارای سه نوع امضا است:
activelyRecorded
-
fun activelyRecorded(device: Device): Metadata.
-
fun activelyRecorded(clientRecordId: String, clientRecordVersion: Long = 0, device: Device): Metadata
-
fun activelyRecordedWithId(id: String, device: Device): Metadata
-
autoRecorded
-
fun autoRecorded(device: Device): Metadata
-
fun autoRecorded(clientRecordId: String, clientRecordVersion: Long = 0, device: Device): Metadata
-
fun autoRecordedWithId(id: String, device: Device): Metadata
-
manualEntry
-
fun manualEntry(device: Device? = null): Metadata
-
fun manualEntry(clientRecordId: String, clientRecordVersion: Long = 0, device: Device? = null): Metadata
-
fun manualEntryWithId(id: String, device: Device? = null): Metadata
-
unknownRecordingMethod
-
fun unknownRecordingMethod(device: Device? = null): Metadata
-
fun unknownRecordingMethod(clientRecordId: String, clientRecordVersion: Long = 0, device: Device? = null): Metadata
-
fun unknownRecordingMethodWithId(id: String, device: Device? = null): Metadata
-
برای اطلاعات بیشتر، به پروژه متن باز Android مراجعه کنید.
آزمایش داده ها
از کتابخانه تست برای تمسخر مقادیر فراداده مورد انتظار استفاده کنید:
private val TEST_METADATA =
Metadata.unknownRecordingMethod(
clientRecordId = "clientId",
clientRecordVersion = 1L,
device = Device(type = Device.TYPE_UNKNOWN),
).populatedWithTestValues(id = "test")
این رفتار پیاده سازی Health Connect را شبیه سازی می کند، که به طور خودکار این مقادیر را در طول درج رکورد پر می کند.
برای کتابخانه آزمایشی، باید این وابستگی Health Connect SDK را به فایل build.gradle
در سطح ماژول خود اضافه کنید:
dependencies {
testImplementation "androidx.health.connect:connect-testing:1.0.0-alpha02"
}
Upgrade the library
مراحل اصلی که باید انجام دهید عبارتند از:
کتابخانه خود را به 1.1.0-alpha12 ارتقا دهید.
هنگام ساخت کتابخانه، خطاهای کامپایل در جایی که به ابرداده جدید نیاز است پرتاب میشود، بنابراین مطمئن شوید که هر زمان که یک شی از نوع
Record()
نمونهسازی میشود، تغییرات فراداده لازم را اعمال کنید. این باید مهاجرت را کامل کند.اگر برنامه شما انواع دستگاه های توسعه یافته را می نویسد، آنها را پشت سر
FEATURE_EXTENTED_DEVICE_TYPES
قرار دهید تا ازTYPE_UNKNOWN
غیرمنتظره در دستگاه هایی که این ویژگی در دسترس نیست جلوگیری کنید.