מדריך לממשק ה-API של Health Connect Matchmaking.
סקירה כללית
ה-API של שירות ההתאמה מאפשר לאפליקציה שלכם לגלות אפליקציות ומכשירים אחרים שיכולים לכתוב נתוני בריאות וכושר שהאפליקציה שלכם קיבלה הרשאה לקרוא. כך המשתמשים יכולים לחבר את מקורות הנתונים המועדפים שלהם לאפליקציה בקלות רבה יותר.
במסך ההתאמה מוצגים מכשירים ואפליקציות שתואמים ל-Health Connect. לאחר מכן, המערכת משווה בין הרשאות הקריאה הנדרשות של האפליקציה לבין יכולות הכתיבה של המכשירים והאפליקציות האלה. במסך מוצגים מכשירים ואפליקציות שהצהירו על הרשאות כתיבה לפחות לאחד מסוגי הרשומות שניתנה לאפליקציה הרשאה לקרוא, אבל עדיין לא קיבלו את ההרשאות האלה.
לפני שמתחילים
המדריך הזה מניח שכבר הגדרתם את Health Connect באפליקציה ושיש לכם מופע של HealthConnectClient.
בדיקת הזמינות של 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)
}
הפעלת ה-Intent הזה תציג ב-Health Connect מסך שבו המשתמשים יכולים לראות אפליקציות ומכשירים תואמים, ולבחור לקשר אותם כדי לשתף נתונים עם האפליקציה שלכם.