Matchmaking API

คู่มือ Health Connect Matchmaking API

ภาพรวม

Matchmaking API ช่วยให้แอปของคุณค้นพบแอปและอุปกรณ์อื่นๆ ที่เขียนข้อมูลสุขภาพซึ่งแอปของคุณมีสิทธิ์อ่านได้ ซึ่งจะช่วยให้ผู้ใช้ เชื่อมต่อแหล่งข้อมูลโปรดกับแอปของคุณได้โดยไม่ยุ่งยาก

หน้าจอการจับคู่จะค้นหาแอปและอุปกรณ์ที่เข้ากันได้กับ Health Connect จากนั้นจะอ้างอิงสิทธิ์การอ่านที่จำเป็นของแอปกับความสามารถในการเขียนของแอปและอุปกรณ์เหล่านั้น หน้าจอจะแสดงแอปและอุปกรณ์ที่ประกาศสิทธิ์เขียนแล้ว แต่ยังไม่ได้รับสิทธิ์สำหรับบันทึกประเภทใดประเภทหนึ่งที่ระบุซึ่งแอปของคุณได้รับอนุญาตให้อ่าน

ก่อนเริ่มต้น

คู่มือนี้ถือว่าคุณได้กำหนดค่า Health Connect ในแอปแล้ว และมีอินสแตนซ์ของ HealthConnectClient พร้อมใช้งาน

การตั้งค่าเวอร์ชันเบต้า

Matchmaking API พร้อมใช้งานผ่านการอัปเดต Health Connect ซึ่งจะ ทยอยเปิดตัวในอุปกรณ์ที่ใช้งานจริง โดยคาดว่าจะพร้อมใช้งาน 100% ภายในช่วงต้นเดือนมิถุนายน 2026 หากต้องการทดสอบฟีเจอร์การจับคู่ก่อนที่จะเปิดตัวการอัปเดตนี้ในวงกว้าง ให้ลงทะเบียนอุปกรณ์ทดสอบในโปรแกรมเบต้าของ Android เพื่อทดลองใช้ก่อนเปิดตัว

ตรวจสอบความพร้อมใช้งานของ Health Connect

ก่อนที่จะพยายามใช้ Health Connect แอปของคุณควรตรวจสอบว่า Health Connect พร้อมใช้งานในอุปกรณ์ของผู้ใช้ อาจติดตั้ง Health Connect ไม่ได้ ในอุปกรณ์ของผู้ใช้ หรืออาจปิดใช้ Health Connect อยู่

ใช้ HealthConnectClient.getSdkStatus() เพื่อตรวจสอบความพร้อมให้บริการ หาก Health Connect ไม่พร้อมใช้งาน ให้แจ้งให้ผู้ใช้ ติดตั้งหรืออัปเดต Health Connect จาก Google Play Store

ตรวจสอบความพร้อมใช้งานของฟีเจอร์

หากต้องการดูว่าอุปกรณ์ของผู้ใช้รองรับการจับคู่ใน 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 แสดงหน้าจอที่ผู้ใช้จะเห็น แอปและอุปกรณ์ที่เข้ากันได้ และเลือกเชื่อมต่อเพื่อแชร์ข้อมูลกับ แอปของคุณ