يتوافق هذا الدليل مع الإصدار 1.1.0-alpha12 من Health Connect والإصدارات الأحدث.
أجرينا تغييرات على البيانات الوصفية في Health Connect للمطوّرين الذين يرقّون إلى الإصدار 1.1.0-alpha12 أو الإصدارات الأحدث.
معلومات المكتبة
يحدّد معرّف العنصر Google Maven Android gradle plugin
مكتبة Health Connect التي عليك ترقيتها.
أضِف مصدر الاعتمادية الخاص بحزمة تطوير البرامج (SDK) لتطبيق Health Connect إلى ملف build.gradle على مستوى الوحدة:
dependencies {
implementation "androidx.health.connect:connect-client:1.1.0-alpha12"
}
تغييرات البيانات الوصفية
أجرينا تغييران على البيانات الوصفية في حزمة تطوير البرامج (SDK) لتطبيق Health Connect على Jetpack بدءًا من الإصدار 1.1.0-alpha12 للمساعدة في التحقّق من توفُّر بيانات وصفية إضافية مفيدة في النظام الأساسي. إذا لم يتم تضمين metadata في أداة إنشاء Record، قد يظهر لك خطأ Constructor internal.
تحديد طريقة التسجيل
يجب تحديد تفاصيل البيانات الوصفية في كل مرة يتم فيها إنشاء عنصر من نوع Record().
| طريقة التسجيل | الوصف |
|---|---|
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(), count = 10 )
نوع الجهاز
يجب تحديد نوع جهاز لجميع البيانات المسجّلة تلقائيًا وبشكل نشط. لمزيد من التفاصيل، اطّلِع على فئة
Device في مستندات Jetpack. تشمل أنواع الأجهزة الحالية ما يلي:
| نوع الجهاز | الوصف |
|---|---|
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_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
}
على سبيل المثال:
val WATCH_DEVICE = Device( manufacturer = "Google", model = "Pixel Watch", type = Device.TYPE_WATCH ) // Phone val PHONE_DEVICE = Device( manufacturer = "Google", model = "Pixel 8", type = Device.TYPE_PHONE ) // Ring val RING_DEVICE = Device( manufacturer = "Oura", model = "Ring Gen3", type = Device.TYPE_RING ) // Scale val SCALE_DEVICE = Device( manufacturer = "Withings", model = "Body Comp", type = Device.TYPE_SCALE )
تم تعديل مقتطفات الرمز
تم تعديل أدلة Health Connect حيثما كانت هناك حاجة إلى مقتطفات رمز جديدة للالتزام بمتطلبات البيانات الوصفية الجديدة. للاطّلاع على بعض الأمثلة، يُرجى الرجوع إلى صفحة كتابة البيانات.
طرق جديدة للبيانات الوصفية
لم يعُد من الممكن إنشاء البيانات الوصفية مباشرةً، لذا استخدِم إحدى طرق الإنشاء للحصول على مثيل جديد من البيانات الوصفية. تتحقّق طرق الإنشاء من توفُّر معلومات الجهاز عند استخدام جهاز أو مستشعر لتسجيل البيانات. بالنسبة إلى البيانات التي يتم إدخالها يدويًا، يظلّ تقديم معلومات الجهاز اختياريًا. تتضمّن كل دالة ثلاث صيغ توقيع:
activelyRecordedfun activelyRecorded(device: Device): Metadata.fun activelyRecorded(clientRecordId: String, clientRecordVersion: Long = 0, device: Device): Metadatafun activelyRecordedWithId(id: String, device: Device): Metadata
autoRecordedfun autoRecorded(device: Device): Metadatafun autoRecorded(clientRecordId: String, clientRecordVersion: Long = 0, device: Device): Metadatafun autoRecordedWithId(id: String, device: Device): Metadata
manualEntryfun manualEntry(device: Device? = null): Metadatafun manualEntry(clientRecordId: String, clientRecordVersion: Long = 0, device: Device? = null): Metadatafun manualEntryWithId(id: String, device: Device? = null): Metadata
unknownRecordingMethodfun unknownRecordingMethod(device: Device? = null): Metadatafun unknownRecordingMethod(clientRecordId: String, clientRecordVersion: Long = 0, device: Device? = null): Metadatafun unknownRecordingMethodWithId(id: String, device: Device? = null): Metadata
لمزيد من المعلومات، يُرجى الاطّلاع على مشروع مفتوح المصدر لنظام Android.
اختبار البيانات
استخدِم مكتبة الاختبار و
MetadataTestHelper لمحاكاة قيم البيانات الوصفية المتوقّعة:
private val TEST_METADATA =
Metadata.unknownRecordingMethod(
clientRecordId = "clientId",
clientRecordVersion = 1L,
device = Device(type = Device.TYPE_UNKNOWN),
).populatedWithTestValues(id = "test")
يحاكي ذلك سلوك عملية تنفيذ Health Connect، التي تملأ هذه القيم تلقائيًا أثناء إدراج السجلّ.
بالنسبة إلى مكتبة الاختبار، عليك إضافة مصدر الاعتمادية الخاص بحزمة تطوير البرامج (SDK) لتطبيق Health Connect إلى ملف build.gradle على مستوى الوحدة:
dependencies {
testImplementation "androidx.health.connect:connect-testing:1.0.0-alpha02"
}
ترقية المكتبة
في ما يلي الخطوات الرئيسية التي عليك اتّباعها:
رقِّ مكتبتك إلى الإصدار 1.1.0-alpha12.
عند إنشاء المكتبة، سيتم عرض أخطاء في التجميع حيثما تكون هناك حاجة إلى بيانات وصفية جديدة. لحلّ هذه الأخطاء وإكمال عملية النقل، تأكَّد من إجراء التغييرات التالية:
- يجب تحديد طريقة تسجيل عند إنشاء
Record. يتم ذلك باستخدام إحدى طرق الإنشاء المتوفّرة فيMetadata، مثلMetadata.manualEntry()أوMetadata.activelyRecorded(device = Device(...)). - بالنسبة إلى البيانات التي يسجّلها جهاز، يجب تحديد نوع الجهاز، مثل
Device.TYPE_WATCHأوDevice.TYPE_PHONE.
- يجب تحديد طريقة تسجيل عند إنشاء
إذا كان تطبيقك يكتب أنواع أجهزة موسّعة، يمكنك إخفاءها خلف
FEATURE_EXTENTED_DEVICE_TYPESلتجنُّب ظهورTYPE_UNKNOWNغير متوقّع على الأجهزة التي لا تتوفّر عليها الميزة.