คำแนะนำเกี่ยวกับ Health Connect Matchmaking API
ภาพรวม
Matchmaking API ช่วยให้แอปของคุณค้นพบแอปและอุปกรณ์อื่นๆ ที่เขียนข้อมูลสุขภาพซึ่งแอปของคุณมีสิทธิ์อ่านได้ ซึ่งจะช่วยให้ผู้ใช้ เชื่อมต่อแหล่งข้อมูลโปรดกับแอปของคุณได้โดยไม่ยุ่งยาก
หน้าจอการจับคู่จะค้นหาแอปและอุปกรณ์ที่เข้ากันได้กับ Health Connect จากนั้นจะอ้างอิงสิทธิ์การอ่านที่จำเป็นของแอปกับความสามารถในการเขียนของแอปและอุปกรณ์เหล่านั้น หน้าจอจะแสดงแอปและอุปกรณ์ ที่ประกาศสิทธิ์เขียนแล้ว แต่ยังไม่ได้รับสิทธิ์สำหรับบันทึกประเภทใดประเภทหนึ่ง ที่ระบุซึ่งแอปของคุณได้รับอนุญาตให้อ่าน
อยู่แล้วก่อนเริ่มต้น
คู่มือนี้ถือว่าคุณได้กำหนดค่า Health Connect ในแอปแล้ว
และมีอินสแตนซ์ของ HealthConnectClient พร้อมใช้งาน
ตรวจสอบความพร้อมใช้งานของ 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 แสดงหน้าจอที่ผู้ใช้สามารถดูแอปและอุปกรณ์ที่เข้ากันได้ รวมถึงเลือกเชื่อมต่อเพื่อแชร์ข้อมูลกับแอปของคุณ