دليل واجهة برمجة التطبيقات Health Connect Matchmaking API
نظرة عامة
تسمح واجهة برمجة التطبيقات Matchmaking API لتطبيقك باكتشاف التطبيقات والأجهزة الأخرى التي يمكنها كتابة بيانات الصحة التي يملك تطبيقك الإذن بقراءتها. ويساعد ذلك المستخدمين في ربط مصادر البيانات المفضّلة لديهم بتطبيقك بسهولة أكبر.
تكتشف شاشة Matchmaking التطبيقات والأجهزة المتوافقة مع Health Connect. ثمّ تقارن أذونات القراءة المطلوبة لتطبيقك بإمكانات الكتابة في هذه التطبيقات والأجهزة. تعرض الشاشة التطبيقات والأجهزة التي أعلنت عن أذونات الكتابة، ولكن لم يتم منحها بعد، لنوع واحد على الأقل من أنواع السجلات المحدّدة التي يُسمح لتطبيقك بقراءتها.
قبل البدء
التحقّق من توفُّر Health Connect
قبل محاولة استخدام Health Connect، يجب أن يتأكّد تطبيقك من توفُّر Health Connect على جهاز المستخدم. قد لا يكون تطبيق Health Connect مثبَّتًا على جهاز المستخدم أو قد يكون غير مفعَّل.
استخدِم HealthConnectClient.getSdkStatus() للتحقّق من
التوفُّر. إذا لم يكن Health Connect متاحًا، اطلب من المستخدم تثبيت Health Connect أو تحديثه من "متجر Google Play".
التحقّق من توفُّر الميزات
لتحديد ما إذا كان جهاز المستخدم يتيح ميزة المطابقة في Health Connect، تحقَّق من توفُّر FEATURE_MATCHMAKING:
if (healthConnectClient
.features
.getFeatureStatus(
HealthConnectFeatures.FEATURE_MATCHMAKING
) == HealthConnectFeatures.FEATURE_STATUS_AVAILABLE) {
// Feature is available
} else {
// Feature isn't available
}
التنفيذ
يتم تشغيل مسار المطابقة باستخدام MatchmakingRequest. يحدّد هذا الطلب أنواع السجلات التي تريد أن يجمعها تطبيقك، ويسمح لك بتضمين مصادر بيانات معيّنة أو استبعادها، مثل التطبيقات أو الأجهزة:
recordTypes: مجموعة من فئاتRecord، مثلStepsRecord::class. إذا كانت فارغة، يعتبر المسار جميع أنواع السجلات التي يملك تطبيقك أذونات القراءة لها.includedDataSources: مجموعة من عناصرDataOriginلتضمينها حصريًا.excludedDataSources: مجموعة من عناصرDataOriginلاستبعادها.
اتّبِع الخطوات التالية لدمج واجهة برمجة التطبيقات Matchmaking API في تطبيقك.
التحقّق مما إذا كانت المطابقة ممكنة
قبل عرض نقطة دخول المطابقة، استخدِم checkIfMatchmakingIsPossible() لتحديد ما إذا كانت هناك أي تطبيقات أو أجهزة مطابقة ذات صلة بأنواع السجلات المطلوبة:
suspend fun checkMatchmakingPossible(healthConnectClient: HealthConnectClient) {
val request = MatchmakingRequest(recordTypes = setOf(StepsRecord::class))
val response = healthConnectClient.checkIfMatchmakingIsPossible(request)
if (response.isMatchmakingPossible) {
// Relevant apps or devices found. Show entry point to launch flow.
} else {
// Handle case where no new data sources are available
}
}
ننصحك بالتحقّق مما إذا كانت المطابقة ممكنة بشكل مستمر.
قد يثبّت المستخدمون لاحقًا تطبيقات إضافية أو يربطون أجهزة بأنواع بيانات متوافقة. يتمثل أحد الأساليب الشائعة في التحقّق في كل مرة يبدأ فيها تطبيقك. إذا عرضت الدالة true، اعرض نقطة دخول لتشغيل مسار المطابقة.
تشغيل مسار المطابقة
إذا كانت المطابقة ممكنة، استخدِم createMatchmakingIntent() للحصول على Intent
لتشغيل مسار Health Connect، ثم شغِّله باستخدام واجهة برمجة التطبيقات Activity Result
API:
// Create the matchmaking launcher
val matchmakingLauncher = registerForActivityResult(
ActivityResultContracts.StartActivityForResult()
) { result ->
if (result.resultCode == Activity.RESULT_OK) {
// Matchmaking finished successfully.
// User successfully granted at least one permission.
} else {
// User canceled flow or didn't grant permissions.
}
}
fun launchMatchmaking(healthConnectClient: HealthConnectClient) {
val request = MatchmakingRequest(recordTypes = setOf(StepsRecord::class))
val intent = healthConnectClient.createMatchmakingIntent(request)
matchmakingLauncher.launch(intent)
}
من خلال تشغيل هذا الغرض، يعرض Health Connect شاشة يمكن للمستخدمين من خلالها الاطّلاع على التطبيقات والأجهزة المتوافقة واختيار ربطها لمشاركة البيانات مع تطبيقك.