سيتم توفير تطبيق Health Connect مع Android 14 كطبقة شائعة لتخزين البيانات. على البيانات الصحية للمستهلك، ومحمية بأذونات دقيقة ويمكن الوصول إليها تطبيق نظام Android (المشار إليه في هذا المستند باسم "إطار العمل" ).
على المطوّرين استخدام حزمة APK Health Connect (الإصدار 13 من نظام التشغيل Android) كإصدار قديم. طبقة التوافق لنموذج إطار العمل. سيحتفظ نموذج إطار العمل تكافؤ الميزات بنسبة 100% مع الإصدار السابق لحِزمة APK.
خلال عملية الانتقال من نظام التشغيل Android 13 إلى الإصدار 14، من المهم جدًا تجربة المستخدم سلسة وبديهية قدر الإمكان.
يوضح هذا المستند خطة نقل البيانات، ويقدم بعض الأمثلة على عملية نقل البيانات وتسرد التغييرات التي طرأت على حزمة تطوير البرامج (SDK) لحزمة Jetpack، والتي تسهّل الوصول إلى واجهة برمجة التطبيقات Health Connect
خطة نقل البيانات
- بعد طرح الإصدار 14 من نظام التشغيل Android، ستنتقل Google إلى توفير تطبيق Health Connect. كتطبيق نظام Android.
- ستتم بعد ذلك إضافة البيانات السابقة من حزمة APK بعد تحقيق تعادل الميزات.
- ستستهدف جميع نقاط الدخول واجهة مستخدم تطبيق النظام.
- ستبدأ عملية نقل البيانات. وأثناء تقدم عملية الترحيل، سيتم تعليق واجهات برمجة التطبيقات للوحدة مع الخيار "عملية النقل في العملية". الحالة. هذا النمط سيظهر أيضًا في واجهة مستخدم Health Connect.
- بعد اكتمال عملية النقل، يمكن إلغاء تثبيت حزمة APK.
أمثلة على سيناريوهات نقل البيانات
في ما يلي بعض الأمثلة على السيناريوهات التي توضّح عملية نقل البيانات لكل من
نوعا بيانات interval
وseries
:
مثال 1 - الجري (بيانات الفاصل الزمني)
جمع أحد المستخدمين 10 سنوات من السجلات الجارية لمدة ساعة واحدة كل يوم. هذا النمط يساوي:
- سجلات جلسات التمرين: 365 * 10 * 1
- الخطوات: 365 * 10 * 1
- السعرات الحرارية: 365 * 10 * 1
- الإجمالي = 365 * 10 * 3 (365 * 30) = 10,150
بالنظر إلى أن مقطعًا واحدًا يساوي 3000 سجل، فإن إجمالي البيانات أعلاه حوالي 4 الأجزاء.
أكد اختبارنا الداخلي أن المقطع النموذجي يستغرق حوالي وثانيًا، إدراجها، لذا سيتم نقل البيانات الواردة أعلاه خلال 4 ثوانٍ.
مثال 2 - معدل ضربات القلب (بيانات السلسلة)
قام المستخدم بجمع بيانات معدل ضربات القلب على مدار 5 سنوات (مع إنشاء سجل كل دقيقة) إجمالاً 2628000 سجل.
عند وجود 3000 سجل لكل مقطع، يتم توزيع البيانات عبر 876 مجموعة. المقدَّمة يستغرق إدراج مقطع واحد حوالي ثانية، فسيتم ترحيل البيانات في أقل من 15 دقيقة.
مسار نقل البيانات المقترَح
لقد قرّرنا تفعيل نقل البيانات الفوري. من الناحية العملية، يعني أنّ حزمة APK ستصبح غير نشطة فور ترقية الجهاز إلى Android 14، مع أقل قدر من تدخل المستخدمين
لنلقِ نظرة على عملية نقل بيانات عالية المستوى:
- ترقية المستخدم إلى الإصدار 14 من Android
- ويوجِّه Jetpack 14 المستخدم إلى واجهات برمجة تطبيقات الوحدة، وتحظره أثناء تنفيذ عملية نقل البيانات قيد التقدم.
- تبدأ عملية نقل البيانات عندما يكون إصدار الوحدة متوافقًا مع الميزات.
مع حزمة APK - أي أن إصدار الوحدة يحتوي على مجموعة الميزات نفسها
أخرى. بعد بدء عملية النقل، تنقل حزمة APK الأذونات.
والبيانات.
- فإذا لم يكن كلا الإصدارين متوافقين مع الميزات، فسيبدأ إصدار الوحدة تحتاج إلى ترقيتها. بعد اكتمال الترقية، تبدأ عملية نقل البيانات المستخدم.
- بعد اكتمال عملية النقل، يتم تغيير الحالة إلى "نقل البيانات". مكتمل، وإلغاء حظر واجهات برمجة تطبيقات الوحدة.
- يمكن الآن إلغاء تثبيت حزمة APK.
عناصر واجهة المستخدم الخاصة بنقل البيانات
يتم عرض الشاشات التالية بواسطة وحدة إطار العمل لتعليم المستخدم. قبل عملية النقل وأثناءها:
الشكل 1. إذا لم يكن تطبيق Health Connect APK "معنيًا بنقل البيانات"، ستظهر لك رسالة مطالبة تُعلم المستخدم بتحديث حزمة APK. إذا رفض المستخدم التحديث، فسيتم أن تستمر الوحدة في العمل وتبدأ في تجميع الأذونات والبيانات:
الشكل 2. إذا كانت وحدة إطار العمل تتطلب تحديثًا لكي تصبح ميزة
متوافق، يتم عرض رسالة تطلب من المستخدم إجراء التحديث
إعادة تشغيل أجهزتهم. إذا رفض المستخدم التحديث، تستمر الوحدة.
لكي يعمل ويبدأ في تجميع الأذونات والبيانات:
الشكل 3. يتم عرض مؤشر سريان العمل أثناء عملية النقل، مع نص يوضّح أنّ البيانات تتم مزامنتها:
البيانات التي تمت إزالة تكرارها
إذا بدأت وحدة إطار العمل في الحصول على البيانات والأذونات قبل إجراء أي عملية نقل بيانات أو استعادة مستندة إلى السحابة الإلكترونية، يجب تنفيذ ما يلي: تطبيق القواعد.
الأذونات
إذا كانت هناك أذونات داخل وحدة إطار العمل، فسيتم تحديد أي يتم تجاهل الأذونات المكتسبة من حزمة APK أثناء عملية نقل البيانات.
البيانات
أثناء نقل البيانات، يتم تجاهل البيانات المكرّرة التي تنشأ من حزمة APK. المزيد وتُعطى الأفضلية للبيانات الحديثة من الوحدة.
ستتم إزالة تكرار البيانات في clientRecordId
إذا تم توفير رقم تعريف السجلّ من خلال
البرنامج. وإذا لم تكن كذلك، فإن الفواصل الزمنية (startTime
وendTime
للعمليات الداخلية
والسجلات، وtime
للسجلات الفورية) كمفتاح، إلى جانب البيانات
ونوع واسم حزمة التطبيق.
التغييرات في حزمة تطوير البرامج (SDK) في Jetpack
تعمل حزمة تطوير برامج Jetpack كنقطة تكامل مشتركة لكل من حزمة Health ربط حزمة APK وواجهات برمجة التطبيقات لإطار عمل Health Connect
يمكن للمصنّعين الأصليين للأجهزة بدء الدمج مع Jetpack 13 بحيث يصبح Jetpack 14 يمكنك ملاءمة المكتبة الجديدة وتجميعها ضمن الإصدار 14 من نظام التشغيل Android
سنطرح إصدارًا جديدًا من حزمة SDK يدعم الانتقال إلى الإصدار 14 من نظام التشغيل Android ستحتاج إلى إجراء بعض التغييرات على عملية الدمج الحالية وضمان انتقال سلس.
بيان الأذونات
في Android 13، يجب الإفصاح عن الأذونات باستخدام تنسيق أذونات مخصّص، وذلك من خلال: ملف موارد مرتبط بالبيان:
#AndroidManifest.xml
<activity>
android:name=".RationaleActivity"
android:exported="true">
<intent-filter>
<action android:name="androidx.health.ACTION_SHOW_PERMISSIONS_RATIONALE"/>
</intent-filter>
<meta-data
android:name="health_permissions"
android:resource="@array/health_permissions"/>
</activity>
<queries>
<package android:name="com.google.android.apps.healthdata" />
</queries>
#health_permissions.xml
<resources>
<array name="health_permissions">
<item>androidx.health.permission.SleepSession.READ</item>
<item>androidx.health.permission.SleepStage.READ</item>
<item>androidx.health.permission.Weight.READ</item>
<item>androidx.health.permission.Weight.WRITE</item>
</array>
</resources>
للتوافق مع نظام التشغيل Android 14، على المطوِّرين الانتقال إلى استخدام الأذونات العادية التنسيق:
#AndroidManifest.xml
<uses-permission android:name=”android.permission.health.READ_SLEEP” />
<uses-permission android:name=”android.permission.health.READ_WEIGHT” />
<uses-permission android:name=”android.permission.health.WRITE_WEIGHT” />
<activity>
android:name=".RationaleActivity"
android:exported="true">
<intent-filter>
<action android:name="androidx.health.ACTION_SHOW_PERMISSIONS_RATIONALE" />
</intent-filter>
</activity>
<queries>
<package android:name="com.google.android.apps.healthdata"/>
</queries>
فتح Health Connect
تحتوي معظم التطبيقات التابعة لجهات خارجية على زر يفتح تطبيق Health Connect، مثل باسم "إدارة الوصول" في Fitbit.
في الإصدار 13 من نظام Android، يمكنك فتح تطبيق Health Connect باستخدام اسم الحزمة
من خلال إجراء androidx.health.ACTION_HEALTH_CONNECT_SETTINGS
.
في Android 14، عليك استخدام إجراء intent محدّد في حزمة تطوير البرامج Jetpack SDK. الذي يحتوي على قيم مختلفة استنادًا إلى إصدار Android الذي يعمل عليه:
@get:JvmName("getHealthConnectSettingsAction")
@JvmStatic val
ACTION_HEALTH_CONNECT_SETTINGS
الحصول على برنامج Health Connect
لقد أنشأنا واجهة برمجة تطبيقات واحدة باسم sdkStatus
ومتاحة في Jetpack 11 من أجل
استبدال واجهتَي برمجة تطبيقات متوقفتين نهائيًا، وهما IsSdkSupported()
isProviderAvailable()
تغييرات واجهة برمجة التطبيقات لسجلّ الجلسة
تم حذف أربعة أنواع فرعية من ExerciseSession
كجزء من alpha10
الإصدار:
ExerciseEvent
ExerciseLaps
ExerciseRepetitions
SwimmingStrokes
كما هو الحال مع ExerciseSessionRecord
، سيصبح SleepStage
نوعًا فرعيًا من
SleepSession
سيتم تنفيذ كل من النوع الفرعي ExerciseSessionRecord
والتغييرات SleepSession
.
كجزء من تحديث حزمة تطوير البرامج (SDK) لشهر أبريل.
تعديل نوع جلسة التمرين
لن تكون أنواع جلسات التمارين أدناه متاحة، وستتم إضافتها بدلاً منها كأنواع أقسام في وقت لاحق:
EXERCISE_TYPE_BACK_EXTENSION
EXERCISE_TYPE_BARBELL_SHOULDER_PRESS
EXERCISE_TYPE_BENCH_PRESS
EXERCISE_TYPE_BENCH_SIT_UP
EXERCISE_TYPE_BURPEE
EXERCISE_TYPE_CRUNCH
EXERCISE_TYPE_DEADLIFT
EXERCISE_TYPE_DUMBBELL_CURL_LEFT_ARM
EXERCISE_TYPE_DUMBBELL_CURL_RIGHT_ARM
EXERCISE_TYPE_DUMBBELL_FRONT_RAISE
EXERCISE_TYPE_DUMBBELL_LATERAL_RAISE
EXERCISE_TYPE_DUMBBELL_TRICEPS_EXTENSION_LEFT_ARM
EXERCISE_TYPE_DUMBBELL_TRICEPS_EXTENSION_RIGHT_ARM
EXERCISE_TYPE_DUMBBELL_TRICEPS_EXTENSION_TWO_ARM
EXERCISE_TYPE_FORWARD_TWIST
EXERCISE_TYPE_JUMPING_JACK
EXERCISE_TYPE_JUMP_ROPE
EXERCISE_TYPE_LAT_PULL_DOWN
EXERCISE_TYPE_LUNGE
EXERCISE_TYPE_PLANK
EXERCISE_TYPE_SQUAT
EXERCISE_TYPE_UPPER_TWIST
أنواع الاستبدال:
EXERCISE_TYPE_HIGH_INTENSITY_INTERVAL_TRAINING
EXERCISE_TYPE_STRENGTH_TRAINING
EXERCISE_TYPE_CALISTHENICS
معالجة سجلّ التغييرات
لن يتم نقل سجلّات التغييرات كجزء من عملية التبديل من حِزمة APK إلى الإصدار Android 14.
بعد اكتمال عملية نقل البيانات، ستبدأ في تلقّي TOKEN_EXPIRED
أو
TOKEN_INVALID
استثناء. وينبغي التعامل معها بالطرق التالية (في
ترتيب التفضيلات):
1. قراءة وإزالة جميع البيانات منذ "آخر قراءة" الطابع الزمني، أو لآخر 30 يومًا
تخزين طابع زمني لوقت آخر قراءة للتطبيق للبيانات من Health Connect. استخدام الرمز المميّز من انتهاء الصلاحية، يجب إعادة قراءة البيانات إما من هذه القيمة أو من آخر 30 يومًا (أيهما يساوي الحد الأدنى)، وإزالة التكرار وفقًا للبيانات التي تمت قراءتها سابقًا باستخدام المعرّف الفريد العالمي (UUID).
2. قراءة البيانات منذ "آخر قراءة" الطابع الزمني
إنشاء طابع زمني يشير إلى آخر مرة تمت فيها قراءة البيانات من Health Connect ، وعند انتهاء صلاحية الرمز المميّز، اقرأ جميع البيانات بعد تلك القيمة.
3. حذف البيانات في آخر 30 يومًا وإعادة قراءتها
حذف جميع البيانات التي تمت قراءتها من Health Connect من آخر 30 يومًا، وقراءة الكل من تلك البيانات مرة أخرى (على سبيل المثال، يتم إجراؤها عند دمج التطبيقات مع Health اتصال).
4. عدم اتّخاذ أي إجراء (أي إعادة قراءة بيانات آخر 30 يومًا وعدم إزالة التكرار)
ويجب استخدامه كحلٍ أخير، مع المخاطر المرتبطة بعرض تكرار البيانات. على المطوّرين استكشاف الخيارات من 1 إلى 3 بدلاً من ذلك، استنادًا إلى المعرّفات الفريدة العالمية (UUID) في مكانها الصحيح.
اختبار واجهات برمجة التطبيقات لنظام التشغيل Android 14 باستخدام حزمة تطوير البرامج (SDK) في Jetpack
من المقرّر إطلاق حزمة تطوير البرامج (SDK) لحزمة Jetpack SDK لنظام التشغيل Android 14 في 7 حزيران (يونيو) 2023، إلى جانب الإصدار التجريبي 3 من نظام التشغيل Android 14 ستحتاج إلى البدء في تجميع تطبيقك مقابل يمكن استخدام الإصدار 14 من نظام Android من أجل استخدام حزمة تطوير البرامج (SDK) لحزمة Jetpack Android 14.
إذا أردت اختبار حلك بالمقارنة مع إصدارات معاينة مطوّر برامج Android قبل 7 حزيران (يونيو)، يُرجى التواصل مع جهة التواصل (POC) في Google للحصول على المساعدة.
إذا كنت ترغب في اختبار حلك مقارنةً بإصدار بيتا 3، يجب عليك إجراء التغييرات التالية في حزمة APK:
- ضبط
compileSDKPreview = UpsideDownCake
- يُرجى تعديل ملف البيان ليتضمن هدفًا لنظام Android 14:
# AndroidManifest.xml
<uses-permission android:name=”android.permission.health.READ_SLEEP”/>
<uses-permission android:name=”android.permission.health.READ_WEIGHT”/>
<uses-permission android:name=”android.permission.health.WRITE_WEIGHT”/>
<activity>
android:name=".RationaleActivity"
android:exported="true">
<intent-filter>
<action android:name="androidx.health.ACTION_SHOW_PERMISSIONS_RATIONALE"/>
</intent-filter>
</activity>
<activity-alias>
android:name="AndroidURationaleActivity"
android:exported="true"
android:targetActivity=".RationaleActivity"
android:permission="android.permission.START_VIEW_PERMISSION_USAGE">
<intent-filter>
<action android:name="android.intent.action.VIEW_PERMISSION_USAGE" />
<category android:name="android.intent.category.HEALTH_PERMISSIONS" />
</intent-filter>
</activity-alias>
<queries>
<package android:name="com.google.android.apps.healthdata" />
</queries>
تخصيص المصنّع الأصلي للجهاز
في Android 14، يوفّر تطبيق Health Connect معلومات الخصوصية تقع عناصر التحكم في إدارة البيانات ضمن "إعدادات النظام"
لجعل شاشات إدارة البيانات والأذونات تبدو وكأنها جزء من يوفّر Health Connect مظهرًا للمصنّعين الأصليين من خلال استخدام العناصر المركّبة المخصصة.
للحصول على مستندات حول تصميم المُصنّع الأصلي، يُرجى الرجوع إلى تطبيق Health Connect من خدمات Google للأجهزة الجوّالة. ذات الصلة.