হেলথ কানেক্ট ম্যাচমেকিং এপিআই-এর একটি নির্দেশিকা।
সংক্ষিপ্ত বিবরণ
ম্যাচমেকিং এপিআই আপনার অ্যাপকে এমন অন্যান্য অ্যাপ ও ডিভাইস খুঁজে বের করতে সাহায্য করে, যেগুলো স্বাস্থ্য সংক্রান্ত ডেটা লিখতে পারে এবং আপনার অ্যাপের তা পড়ার অনুমতি রয়েছে। এটি ব্যবহারকারীদের তাদের পছন্দের ডেটা উৎসগুলোকে আপনার অ্যাপের সাথে সহজে সংযুক্ত করতে সহায়তা করে।
ম্যাচমেকিং স্ক্রিনটি হেলথ কানেক্ট-উপযোগী অ্যাপ এবং ডিভাইস খুঁজে বের করে। এরপর এটি আপনার অ্যাপের প্রয়োজনীয় রিড পারমিশনের সাথে সেইসব অ্যাপ ও ডিভাইসগুলোর রাইট ক্যাপাবিলিটি মিলিয়ে দেখে। এই স্ক্রিনটি সেইসব অ্যাপ এবং ডিভাইস প্রদর্শন করে, যেগুলো আপনার অ্যাপকে রিড করার অনুমতিপ্রাপ্ত নির্দিষ্ট রেকর্ড টাইপগুলোর মধ্যে অন্তত একটির জন্য রাইট পারমিশন ঘোষণা করেছে, কিন্তু এখনও তা মঞ্জুর করেনি।
শুরু করার আগে
এই নির্দেশিকাটি ধরে নেয় যে আপনি আপনার অ্যাপে ইতিমধ্যেই হেলথ কানেক্ট কনফিগার করেছেন এবং আপনার কাছে HealthConnectClient এর একটি ইনস্ট্যান্স উপলব্ধ আছে।
বিটা সেটআপ
ম্যাচমেকিং এপিআইটি হেলথ কানেক্ট-এর একটি আপডেটের মাধ্যমে পাওয়া যাচ্ছে, যা পর্যায়ক্রমে প্রোডাকশন ডিভাইসগুলোতে রোল আউট করা হচ্ছে এবং ২০২৬ সালের জুন মাসের শুরুর দিকে এটি শতভাগ উপলব্ধ হবে বলে আশা করা হচ্ছে। এই আপডেটটি ব্যাপকভাবে উপলব্ধ হওয়ার আগেই ম্যাচমেকিং ফিচারগুলো পরীক্ষা করার জন্য, আর্লি অ্যাক্সেস পেতে আপনার টেস্ট ডিভাইসটিকে অ্যান্ড্রয়েড বিটা প্রোগ্রামে এনরোল করুন।
হেলথ কানেক্ট-এর প্রাপ্যতা যাচাই করুন
হেলথ কানেক্ট ব্যবহার করার চেষ্টা করার আগে, আপনার অ্যাপের যাচাই করে নেওয়া উচিত যে ব্যবহারকারীর ডিভাইসে হেলথ কানেক্ট উপলব্ধ আছে কি না। ব্যবহারকারীর ডিভাইসে হেলথ কানেক্ট ইনস্টল করা নাও থাকতে পারে, অথবা এটি নিষ্ক্রিয় করা থাকতে পারে।
উপলব্ধতা যাচাই করতে HealthConnectClient.getSdkStatus() ব্যবহার করুন। যদি 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:StepsRecord::classএর মতোRecordক্লাসগুলির একটি সেট। এটি খালি থাকলে, ফ্লোটি আপনার অ্যাপের রিড পারমিশন আছে এমন সমস্ত রেকর্ড টাইপ বিবেচনা করে। -
includedDataSources: একচেটিয়াভাবে অন্তর্ভুক্ত করার জন্যDataOriginঅবজেক্টের একটি সেট। -
excludedDataSources: বাদ দেওয়ার জন্যDataOriginঅবজেক্টের একটি সেট।
আপনার অ্যাপ্লিকেশনে ম্যাচমেকিং এপিআই সংহত করতে এই ধাপগুলো অনুসরণ করুন।
ম্যাচমেকিং সম্ভব কিনা তা যাচাই করুন।
একটি ম্যাচমেকিং এন্ট্রি পয়েন্ট দেখানোর আগে, অনুরোধ করা রেকর্ড টাইপগুলির জন্য কোনো প্রাসঙ্গিক ম্যাচিং অ্যাপ বা ডিভাইস আছে কিনা তা নির্ধারণ করতে 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 রিটার্ন করে, তাহলে ম্যাচমেকিং প্রক্রিয়াটি চালু করার জন্য একটি এন্ট্রি পয়েন্ট দেখান।
ম্যাচমেকিং প্রক্রিয়াটি চালু করুন
যদি ম্যাচমেকিং সম্ভব হয়, তাহলে হেলথ কানেক্ট ফ্লো চালু করার জন্য একটি Intent পেতে createMatchmakingIntent() ব্যবহার করুন, তারপর অ্যাক্টিভিটি রেজাল্ট এপিআই ব্যবহার করে এটি চালু করুন:
// 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)
}
এই ইন্টেন্টটি চালু করার মাধ্যমে, হেলথ কানেক্ট একটি স্ক্রিন প্রদর্শন করে যেখানে ব্যবহারকারীরা সামঞ্জস্যপূর্ণ অ্যাপ ও ডিভাইসগুলো দেখতে পারেন এবং আপনার অ্যাপের সাথে ডেটা শেয়ার করার জন্য সেগুলোকে সংযুক্ত করতে পারেন।