এই গাইড Health Connect ভার্সন ১.১.০-alpha১২ বা তার পরবর্তী ভার্সনের সাথে মানানসই।
আপনার অ্যাপে কীভাবে Health Connect ব্যবহার করা শুরু করবেন তা এই নির্দেশিকায় দেখানো হয়েছে।
ধাপ ১: Health Connect অ্যাপ প্রস্তুত করা
Health Connect SDK-এর মাধ্যমে আপনার অ্যাপ্লিকেশন যেসব অনুরোধ পাঠায়, Health Connect অ্যাপ সেগুলি ম্যানেজ করার জন্য দায়ী। এইসব অনুরোধের মধ্যে ডেটা স্টোর করা এবং সেটির রিড ও রাইট অ্যাক্সেস ম্যানেজ করা অন্তর্ভুক্ত।
ফোনে ইনস্টল করা Android ভার্সনের উপর Health Connect-এর অ্যাক্সেস নির্ভর করে। Android-এর সাম্প্রতিক কয়েকটি ভার্সন কীভাবে ম্যানেজ করবেন তা নিম্নলিখিত বিভাগে উল্লেখ করা হয়েছে।
Android 14
Android 14 (API লেভেল 34) থেকে শুরু করে, Health Connect হল Android ফ্রেমওয়ার্কের অংশ। Health Connect-এর এই ভার্সনটি হল একটি ফ্রেমওয়ার্ক মডিউল। এর জন্য কোনও সেট-আপের প্রয়োজন নেই।
Android 13 ও এর আগের যেকোনও ভার্সন
Android 13 (API লেভেল 33) এবং এর আগের যেকোনও ভার্সনে, Health Connect, Android ফ্রেমওয়ার্কের অংশ নয়। এর সাথে, আপনাকে Google Play Store থেকে Health Connect অ্যাপ ইনস্টল করতে হবে।
আপনি যদি Android 13 ও তার আগের যেকোনও ভার্সনে Health Connect-এর সাথে আপনার অ্যাপ ইন্টিগ্রেট করে থাকেন এবং Android 14-এ মাইগ্রেট করতে চান, তাহলে Android 13 থেকে 14-এ মাইগ্রেট করুন নিবন্ধটি দেখুন।
Health Connect অ্যাপ খুলুন
ডিফল্ট হিসেবে Health Connect আর হোম স্ক্রিনে দেখা যায় না। আপনি সেটিংস থেকে Health Connect খুলতে পারবেন, তবে Android ভার্সনের উপর নির্ভর করে পাথ আলাদা হতে পারে:
- Android 14 ও তার পরবর্তী ভার্সনে: সেটিংস > সুরক্ষা ও গোপনীয়তা > গোপনীয়তা নিয়ন্ত্রণ > Health Connect বিকল্পে যান অথবা সেটিংসে Health Connect সার্চ করুন।
- Android 13 ও তার আগের যেকোনও ভার্সনে: সেটিংস > অ্যাপ > Health Connect বিকল্পে যান, অথবা আপনার দ্রুত সেটিংস মেনুতে Health Connect যোগ করুন।
ধাপ ২: আপনার অ্যাপে Health Connect SDK যোগ করুন
Health Connect SDK-এর কাজ হল Health Connect API ব্যবহার করে Health Connect অ্যাপের ডেটাস্টোরে অপারেশন পারফর্ম করার জন্য অনুরোধ পাঠানো।
আপনার মডিউল-লেভেল build.gradle ফাইলে Health Connect SDK ডিপেন্ডেন্সি যোগ করুন:
dependencies {
...
implementation "androidx.health.connect:connect-client:1.2.0-alpha06"
...
}
লেটেস্ট ভার্সনের জন্য Health Connect রিলিজ দেখুন।
connect-client-এর 1.1.0 এবং পরবর্তী ভার্সনের জন্য compileSdk = 36 এবং
Android Gradle প্লাগ-ইন (AGP) ভার্সন 8.9.1 বা তার পরবর্তী যেকোনও ভার্সন প্রয়োজন। আপনার মডিউল-লেভেল build.gradle ফাইলে
compileSdk আপডেট করুন:
android {
compileSdk = 36
}
Canary রিলিজ চ্যানেল ফিচার ব্যবহার করুন
Canary রিলিজ চ্যানেলে ফিচার ব্যবহার করতে, আপনার মডিউল-লেভেল build.gradle ফাইলে
compileSdk-এর ভার্সন পরিবর্তন করুন:
android {
compileSdkPreview = "CANARY"
}
ধাপ ৩: আপনার অ্যাপ কনফিগার করুন
নিচের বিভাগগুলি থেকে আপনি জানতে পারবেন যে Health Connect-এর সাথে ইন্টিগ্রেট করার জন্য কীভাবে আপনার অ্যাপ কনফিগার করবেন।
ফিচার উপলভ্য কিনা দেখে নিন
Health Connect-এ নতুন ফিচার যোগ করা হলে, ব্যবহারকারীরা সবসময় তাদের Health Connect-এর ভার্সন আপডেট নাও করতে পারেন। ফিচার উপলভ্যতা API হল Health Connect-এর কোনও ফিচার ব্যবহারকারীর ডিভাইসে উপলভ্য আছে কিনা তা চেক করার এবং কী অ্যাকশন নিতে হবে তা সিদ্ধান্ত নেওয়ার একটি উপায়।
ফিচার উপলভ্য কিনা তা চেক করার প্রধান ফাংশন হল
getFeatureStatus()। এটি পূর্ণসংখ্যা কনস্ট্যান্ট ফেরত দেয়
FEATURE_STATUS_AVAILABLE বা FEATURE_STATUS_UNAVAILABLE:
fun enqueueBackgroundReadWorker(context: Context, healthConnectClient: HealthConnectClient) { if (healthConnectClient .features .getFeatureStatus( HealthConnectFeatures.FEATURE_READ_HEALTH_DATA_IN_BACKGROUND ) == HealthConnectFeatures.FEATURE_STATUS_AVAILABLE ) { val periodicWorkRequest = PeriodicWorkRequestBuilder<ScheduleWorker>(1, TimeUnit.HOURS) .build() WorkManager.getInstance(context).enqueueUniquePeriodicWork( "read_health_connect", ExistingPeriodicWorkPolicy.KEEP, periodicWorkRequest ) } }
অনুমতি ঘোষণা করা
স্বাস্থ্য ও ফিটনেস সংক্রান্ত ডেটা অ্যাক্সেস করা সংবেদনশীল। ব্যবহারকারীর বিশ্বাস বজায় রাখতে, Health Connect রিড ও রাইট অপারেশনের জন্য সুরক্ষার একটি লেয়ার প্রয়োগ করে।
আপনার অ্যাপে, প্রয়োজনীয় ডেটার ধরনের উপর ভিত্তি করে AndroidManifest.xml
ফাইলে রিড ও রাইট পার্মিশন ঘোষণা করুন, যা Play Console-এ আপনার ঘোষণা করা অ্যাক্সেসের সাথে মিলতে হবে।
Health Connect স্ট্যান্ডার্ড Android অনুমতি সংক্রান্ত ঘোষণা ফর্ম্যাট ব্যবহার করে।
<uses-permission> ট্যাগ সহ অনুমতি অ্যাসাইন করুন। সেগুলিকে
<manifest> ট্যাগের মধ্যে নেস্ট করুন।
<manifest>
<uses-permission android:name="android.permission.health.READ_HEART_RATE"/>
<uses-permission android:name="android.permission.health.WRITE_HEART_RATE"/>
<uses-permission android:name="android.permission.health.READ_STEPS"/>
<uses-permission android:name="android.permission.health.WRITE_STEPS"/>
<application>
...
</application>
</manifest>
অনুমতির সম্পূর্ণ তালিকা এবং সেগুলির সাথে সংশ্লিষ্ট ডেটার ধরন দেখতে, ডেটার ধরনের তালিকা দেখুন।
আপনার অ্যাপের গোপনীয়তা নীতি সংক্রান্ত ডায়ালগ দেখান
আপনার Android ম্যানিফেস্টে এমন একটি অ্যাক্টিভিটি থাকতে হবে যা আপনার অ্যাপের গোপনীয়তা নীতি দেখায়, যা আপনার অ্যাপের অনুরোধ করা অনুমতির যৌক্তিকতা, ব্যবহারকারীর ডেটা কীভাবে ব্যবহার এবং ম্যানেজ করা হয় তা বর্ণনা করে।
ACTION_SHOW_PERMISSIONS_RATIONALE ইনটেন্ট ম্যানেজ করার জন্য এই অ্যাক্টিভিটি ঘোষণা করুন।
ব্যবহারকারী Health Connect-এর অনুমতি স্ক্রিনে গোপনীয়তা নীতি লিঙ্কে ক্লিক করলে,
এই ইনটেন্ট অ্যাপে পাঠানো হয়।
...
<application>
...
<!-- For supported versions through Android 13, create an activity to show the rationale
of Health Connect permissions once users click the privacy policy link. -->
<activity
android:name=".PermissionsRationaleActivity"
android:exported="true">
<intent-filter>
<action android:name="androidx.health.ACTION_SHOW_PERMISSIONS_RATIONALE" />
</intent-filter>
</activity>
<!-- For versions starting Android 14, create an activity alias to show the rationale
of Health Connect permissions once users click the privacy policy link. -->
<activity-alias
android:name="ViewPermissionUsageActivity"
android:exported="true"
android:targetActivity=".PermissionsRationaleActivity"
android:permission="android.permission.START_VIEW_PERMISSION_USAGE">
<intent-filter>
<action android:name="android.intent.action.VIEW_PERMISSION_USAGE" />
<category android:name="android.intent.category.HEALTH_PERMISSIONS" />
</intent-filter>
</activity-alias>
...
</application>
...
Health Connect ক্লায়েন্ট পাওয়া
HealthConnectClient হল Health Connect API-এর একটি এন্ট্রি পয়েন্ট।
এটি অ্যাপকে Health Connect অ্যাপে ডেটাস্টোর ব্যবহার করার অনুমতি দেয়। এটি
অন্তর্নিহিত স্টোরেজ লেয়ারের সাথে কানেকশন অটোমেটিক ম্যানেজ করে এবং
সব IPC এবং আউটগোয়িং অনুরোধ ও ইনকামিং উত্তরের সিরিয়ালাইজেশন ম্যানেজ করে।
ক্লায়েন্ট ইনস্ট্যান্স পেতে, প্রথমে আপনার Android ম্যানিফেস্টে Health Connect প্যাকেজের নাম ঘোষণা করুন।
<application> ... </application>
...
<!-- Check if Health Connect is installed -->
<queries>
<package android:name="com.google.android.apps.healthdata" />
</queries>
তারপর, আপনার অ্যাক্টিভিটিতে, getSdkStatus ব্যবহার করে Health Connect ইনস্টল করা আছে কিনা
চেক করুন। যদি তা হয়, তাহলে একটি
HealthConnectClient ইনস্ট্যান্স পান।
val availabilityStatus = HealthConnectClient.getSdkStatus(context) if (availabilityStatus == HealthConnectClient.SDK_UNAVAILABLE) { Box(modifier = modifier.padding(16.dp), contentAlignment = Alignment.Center) { Text( text = "Health Connect is not available on this device. Please ensure it is installed and updated.", style = MaterialTheme.typography.bodyLarge, textAlign = TextAlign.Center ) } return } val healthConnectClient = remember { if (availabilityStatus == HealthConnectClient.SDK_AVAILABLE) { HealthConnectClient.getOrCreate(context) } else { null } }
ধাপ ৪: ব্যবহারকারীর থেকে অনুমতি চাওয়া
ক্লায়েন্ট ইনস্ট্যান্স তৈরি করার পরে, আপনার অ্যাপকে ব্যবহারকারীর থেকে অনুমতি চাইতে হবে। ব্যবহারকারীকে যেকোনও সময় অনুমতি দেওয়া বা প্রত্যাখ্যান করার সুবিধা দিতে হবে। এটি করতে, প্রয়োজনীয় ডেটার ধরনের জন্য অনুমতির একটি সেট তৈরি করুন। সেটে থাকা অনুমতিগুলি আপনার Android ম্যানিফেস্টে প্রথমে ঘোষণা করা হয়েছে কিনা তা নিশ্চিত করুন।
val permissions = setOf( HealthPermission.getReadPermission(HeartRateRecord::class), HealthPermission.getWritePermission(HeartRateRecord::class), HealthPermission.getReadPermission(StepsRecord::class), HealthPermission.getWritePermission(StepsRecord::class) )
getGrantedPermissions ব্যবহার করুন। যদি না হয়, তাহলে
createRequestPermissionResultContract
ব্যবহার করে সেইসব অনুমতির জন্য অনুরোধ করুন। এটি Health Connect-এর অনুমতি সংক্রান্ত স্ক্রিন দেখায়।
val permissions = setOf( HealthPermission.getReadPermission(StepsRecord::class), HealthPermission.getWritePermission(StepsRecord::class), HealthPermission.getReadPermission(HeartRateRecord::class), HealthPermission.getWritePermission(HeartRateRecord::class) ) val requestPermissionsLauncher = rememberLauncherForActivityResult( contract = PermissionController.createRequestPermissionResultContract() ) { grantedPermissions -> if (grantedPermissions.containsAll(permissions)) { coroutineScope.launch { snackbarHostState.showSnackbar("Permissions granted!") } } else { coroutineScope.launch { snackbarHostState.showSnackbar("Permissions denied.") } } }
ব্যবহারকারীদের অনবোর্ড করা
অনেক অ্যাপে কাস্টম অনবোর্ডিং ফ্লো থাকে, যেমন ফিচার সম্পর্কে শেখানো বা ব্যবহারকারীর সম্মতি চাওয়া। Health Connect-কে আপনার অনবোর্ডিং ফ্লো চালু করার অনুমতি দিতে, আপনার ম্যানিফেস্টে নিম্নলিখিতগুলি যোগ করুন:
<!-- Required to support pre-Android 14 devices with APK Health Connect -->
<activity
android:name=".OnboardingActivity"
android:exported="true"
android:permission="com.google.android.apps.healthdata.permission.START_ONBOARDING">
<intent-filter>
<action android:name="androidx.health.ACTION_SHOW_ONBOARDING"/>
</intent-filter>
</activity>
<!-- Required to support Android 14+ devices with platform Health Connect -->
<activity-alias
android:name="UAndAboveOnboardingActivity"
android:exported="true"
android:targetActivity=".OnboardingActivity"
android:permission="android.permission.health.START_ONBOARDING">
<intent-filter>
<action android:name="android.health.connect.action.SHOW_ONBOARDING" />
</intent-filter>
</activity-alias>
ব্যবহারকারীরা আপনার অ্যাপের মধ্যে থেকে না করে সরাসরি Health Connect অ্যাপ থেকে আপনার অ্যাপে কানেকশন শুরু করতে পারেন। ডেটা পড়া বা লেখার অনুমতি দেওয়ার বাইরে আপনার অ্যাপের যদি কোনও অতিরিক্ত ইন্টার্যাকশনের প্রয়োজন হয়, তাহলে একটি অনবোর্ডিং অ্যাক্টিভিটি প্রদান করুন।
মনে রাখবেন, অনবোর্ডিং অ্যাক্টিভিটি একাধিকবার লঞ্চ করা হতে পারে, যেমন ব্যবহারকারী পরে আপনার অ্যাপের অনুমতি প্রত্যাহার করে নিলে এবং তারপর আবার কানেক্ট করলে।
ধাপ ৫: অপারেশন করা
এখন সবকিছু সেট করা হয়ে গেছে, আপনার অ্যাপে রিড ও রাইট অপারেশন করুন।
আপনার ব্যবহারকারীরা অন্যান্য অ্যাপ ব্যবহার করতে পারেন যা আপনার অ্যাপ অ্যাক্সেস করার জন্য Health Connect-এর সাথে ডেটা সিঙ্ক করে। ব্যবহারকারী যদি এখনও Health Connect-এ লেখার জন্য এইসব অ্যাপ সেট-আপ না করে থাকেন, তাহলে আপনি Matchmaking API ব্যবহার করে ব্যবহারকারীর জন্য এইসব অ্যাপ নির্বিঘ্নে কানেক্ট করতে পারবেন।
ডেটা এডিট করা
আপনার ডেটাকে একটি রেকর্ডে স্ট্রাকচার করুন। Health Connect-এ উপলভ্য ডেটার ধরনের তালিকা দেখুন।
val zoneOffset = ZoneOffset.systemDefault().rules.getOffset(startTime) val stepsRecord = StepsRecord( count = 120, startTime = startTime, endTime = endTime, startZoneOffset = zoneOffset, endZoneOffset = zoneOffset, metadata = Metadata.autoRecorded( device = Device(type = Device.TYPE_WATCH) ) ) healthConnectClient.insertRecords(listOf(stepsRecord))
তারপর insertRecords ব্যবহার করে আপনার রেকর্ড লিখুন।
val zoneOffset = ZoneOffset.systemDefault().rules.getOffset(startTime) val stepsRecord = StepsRecord( count = 120, startTime = startTime, endTime = endTime, startZoneOffset = zoneOffset, endZoneOffset = zoneOffset, metadata = Metadata.autoRecorded( device = Device(type = Device.TYPE_WATCH) ) ) healthConnectClient.insertRecords(listOf(stepsRecord))
ডেটা দেখা
আপনি readRecords ব্যবহার করে আপনার ডেটা আলাদাভাবে পড়তে পারবেন।
val response = healthConnectClient.readRecords( ReadRecordsRequest( HeartRateRecord::class, timeRangeFilter = TimeRangeFilter.between(startTime, endTime) ) ) response.records.forEach { record -> /* Process records */ }
এছাড়াও, আপনি
aggregate ব্যবহার করে আপনার ডেটা সামগ্রিকভাবে পড়তে পারবেন।
suspend fun readStepsAggregate(startTime: Instant, endTime: Instant): Long { val response = healthConnectClient.aggregate( AggregateRequest( metrics = setOf(StepsRecord.COUNT_TOTAL), timeRangeFilter = TimeRangeFilter.between(startTime, endTime) ) ) return response[StepsRecord.COUNT_TOTAL] ?: 0L }
ভিডিও টিউটোরিয়াল
Health Connect ফিচার সম্পর্কে আরও জানতে এবং মসৃণ ইন্টিগ্রেশনের জন্য পেশাদার পদ্ধতি সংক্রান্ত নির্দেশিকা সম্পর্কে জানতে এই ভিডিওগুলি দেখুন:
- Health Connect-এ অনুমতি ম্যানেজ করা
- Health Connect-এ রিড ও রাইট করা
- Health Connect-এর সাথে দারুণ ইন্টিগ্রেশনের জন্য পরামর্শ
রিসোর্স
নিম্নলিখিত রিসোর্সগুলি দেখুন যা পরে ডেভেলপমেন্টে সাহায্য করে।
- Health Connect SDK (Jetpack-এ উপলভ্য): Health Connect API ব্যবহার করতে আপনার অ্যাপ্লিকেশনে এই SDK অন্তর্ভুক্ত করুন।
- API রেফারেন্স: Health Connect API-এর জন্য Jetpack রেফারেন্স দেখুন।
- ডেটার ধরন ব্যবহারের ঘোষণা: Play Console-এ, Health Connect ডেটার ধরন অ্যাক্সেস করার ঘোষণা করুন যেখান থেকে আপনার অ্যাপ ডেটা পড়ে এবং যেখানে ডেটা লেখে।
- ঐচ্ছিক GitHub কোড স্যাম্পেল ও কোডল্যাব: শুরু করতে আপনাকে সাহায্য করার জন্য GitHub কোড স্যাম্পেল রিপোজিটরি ও কোডল্যাব এক্সারসাইজ দেখুন।
পরবর্তী ধাপ
Health Connect-এ কীভাবে অপারেশন পারফর্ম করতে হয় তা জানতে সাধারণ ওয়ার্কফ্লো চেক করে দেখুন, যেমন: