इस गाइड में बताया गया है कि अपने ऐप्लिकेशन पर Health Connect का इस्तेमाल कैसे किया जा सकता है.
पहला चरण: Health Connect ऐप्लिकेशन तैयार करना
Health Connect ऐप्लिकेशन, आपके उन सभी अनुरोधों को मैनेज करने की ज़िम्मेदारी लेता है जो ऐप्लिकेशन, Health Connect SDK टूल की मदद से भेजता है. इन अनुरोधों में स्टोर करना शामिल है डेटा और इसके पढ़ने और लिखने के ऐक्सेस को मैनेज करना.
Health Connect का ऐक्सेस, फ़ोन में इंस्टॉल किए गए Android वर्शन के हिसाब से तय होता है. नीचे दिए सेक्शन में, Android के हाल ही के कई वर्शन को मैनेज करने का तरीका बताया गया है.
Android 14
Android 14 (एपीआई लेवल 34) की शुरुआत से, Health Connect Android फ़्रेमवर्क. Health Connect का यह वर्शन, एक फ़्रेमवर्क मॉड्यूल है. के साथ इसके लिए, किसी सेटअप की ज़रूरत नहीं है.
Android 13 और उससे पहले वाले वर्शन के लिए
Android 13 (एपीआई लेवल 33) और इससे पहले के वर्शन वाले डिवाइसों पर, Health Connect इसका हिस्सा नहीं है Android फ़्रेमवर्क के बारे में ज़्यादा जानें. इसके बाद, आपको Google Play Store से मिला Health Connect ऐप्लिकेशन.
अगर आपने अपने ऐप्लिकेशन को Android 13 और उससे पहले के वर्शन पर Health Connect के साथ इंटिग्रेट किया है, तो को Android 14 पर माइग्रेट करना है, तो यह Android 13 से 14 पर माइग्रेट करें.
Health Connect ऐप्लिकेशन खोलें
Health Connect अब डिफ़ॉल्ट रूप से होम स्क्रीन पर नहीं दिखता. Health ऐप्लिकेशन खोलने के लिए कनेक्ट करने के लिए, सेटिंग > ऐप्लिकेशन > Health Connect या Health Connect को इससे जोड़ें क्विक सेटिंग मेन्यू में जाकर.
इसके अलावा, Health Connect के लिए उपयोगकर्ता को स्क्रीन लॉक की सुविधा चालू करनी होगी कोई पिन, पैटर्न या पासवर्ड, ताकि Health ऐप्लिकेशन में सेव किया जा रहा स्वास्थ्य का डेटा डिवाइस के लॉक होने पर, कनेक्ट को नुकसान पहुंचाने वाले पक्षों से सुरक्षित रखा जाता है. सेट करने के लिए स्क्रीन लॉक, सेटिंग > पर जाएं सुरक्षा > स्क्रीन लॉक.
दूसरा चरण: अपने ऐप्लिकेशन में Health Connect SDK टूल जोड़ना
Health Connect API, Health Connect API का इस्तेमाल इन कामों के लिए करता है Health ऐप्लिकेशन में डेटा स्टोर के लिए कार्रवाई करने के लिए अनुरोध भेजें ऐप्लिकेशन को कनेक्ट करें.
मॉड्यूल लेवल की build.gradle
फ़ाइल में, Health Connect SDK टूल की डिपेंडेंसी जोड़ें:
dependencies {
...
implementation "androidx.health.connect:connect-client:1.1.0-alpha02"
...
}
नए वर्शन के लिए, Health Connect की रिलीज़ देखें.
तीसरा चरण: अपने ऐप्लिकेशन को कॉन्फ़िगर करना
नीचे दिए सेक्शन में, अपने ऐप्लिकेशन को इंटिग्रेट करने के लिए कॉन्फ़िगर करने का तरीका बताया गया है Health Connect.
अनुमतियों का एलान करना
सेहत और फ़िटनेस से जुड़े डेटा का ऐक्सेस संवेदनशील होता है. Health Connect, यह ऑपरेशन पढ़ने और लिखने के लिए सुरक्षा की एक लेयर होती है. इसकी मदद से, उपयोगकर्ताओं का भरोसा बनाए रखा जा सकता है.
AndroidManifest.xml
फ़ाइल पर, पढ़ने और लिखने की अनुमतियों का एलान इसके आधार पर करें
का इस्तेमाल किया जा सकता है. पक्का करें कि आपने अनुमतियों के उसी सेट का इस्तेमाल किया है
आपने [फ़ॉर्म]{:.external} पूरा करने के बाद, ऐक्सेस का अनुरोध किया है.
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 ऐप्लिकेशन में डेटास्टोर इस्तेमाल कर पाता है. यह
स्टोरेज लेयर और हैंडल के साथ इसका कनेक्शन अपने-आप मैनेज करता है
सभी आईपीसी और बाहर जाने वाले अनुरोधों और आने वाले जवाबों को क्रम से लगाना.
क्लाइंट इंस्टेंस पाने के लिए, अपने Android मेनिफ़ेस्ट पहले.
<application> ... </application>
...
<!-- Check if Health Connect is installed -->
<queries>
<package android:name="com.google.android.apps.healthdata" />
</queries>
इसके बाद, 'गतिविधि' में जाकर देखें कि Health Connect इंस्टॉल किया गया है या नहीं
getSdkStatus
का इस्तेमाल करके. अगर ऐसा है, तो
HealthConnectClient
इंस्टेंस.
val availabilityStatus = HealthConnectClient.getSdkStatus(context, providerPackageName)
if (availabilityStatus == HealthConnectClient.SDK_UNAVAILABLE) {
return // early return as there is no viable integration
}
if (availabilityStatus == HealthConnectClient.SDK_UNAVAILABLE_PROVIDER_UPDATE_REQUIRED) {
// Optionally redirect to package installer to find a provider, for example:
val uriString = "market://details?id=$providerPackageName&url=healthconnect%3A%2F%2Fonboarding"
context.startActivity(
Intent(Intent.ACTION_VIEW).apply {
setPackage("com.android.vending")
data = Uri.parse(uriString)
putExtra("overlay", true)
putExtra("callerId", context.packageName)
}
)
return
}
val healthConnectClient = HealthConnectClient.getOrCreate(context)
// Issue operations with healthConnectClient
चौथा चरण: उपयोगकर्ता से अनुमतियों का अनुरोध करना
क्लाइंट इंस्टेंस बनाने के बाद, आपके ऐप्लिकेशन को उपयोगकर्ता. उपयोगकर्ताओं के पास किसी भी समय अनुमतियां देने या अस्वीकार करने की अनुमति होनी चाहिए.
ऐसा करने के लिए, ज़रूरी डेटा टाइप के लिए अनुमतियों का एक सेट बनाएं. पक्का करें कि कि सेट की अनुमतियों का एलान पहले आपके Android मेनिफ़ेस्ट में किया जाए.
// Create a set of permissions for required data types
val PERMISSIONS =
setOf(
HealthPermission.getReadPermission(HeartRateRecord::class),
HealthPermission.getWritePermission(HeartRateRecord::class),
HealthPermission.getReadPermission(StepsRecord::class),
HealthPermission.getWritePermission(StepsRecord::class)
)
getGrantedPermissions
का इस्तेमाल करके देखें कि आपके ऐप्लिकेशन में पहले से ही
आवश्यक अनुमतियां दी गईं. अगर ऐसा नहीं है, तो इसका इस्तेमाल करें
इसके लिए अनुरोध करने के लिए, createRequestPermissionResultContract
उन अनुमतियों को हटा दिया है. यह Health Connect की अनुमतियों वाली स्क्रीन दिखाता है.
// Create the permissions launcher
val requestPermissionActivityContract = PermissionController.createRequestPermissionResultContract()
val requestPermissions = registerForActivityResult(requestPermissionActivityContract) { granted ->
if (granted.containsAll(PERMISSIONS)) {
// Permissions successfully granted
} else {
// Lack of required permissions
}
}
suspend fun checkPermissionsAndRun(healthConnectClient: HealthConnectClient) {
val granted = healthConnectClient.permissionController.getGrantedPermissions()
if (granted.containsAll(PERMISSIONS)) {
// Permissions already granted; proceed with inserting or reading data
} else {
requestPermissions.launch(PERMISSIONS)
}
}
यह न मानें कि अनुमतियां एक जैसी रहती हैं, क्योंकि उपयोगकर्ता दे सकते हैं या उन्हें रद्द कर सकते हैं उन्हें किसी भी समय ऐक्सेस कर सकते हैं. आपके ऐप्लिकेशन को दी गई अनुमतियों की समय-समय पर जांच करनी होगी, और उन स्थितियों को मैनेज करें जहां अनुमति खत्म हो जाती है.
पांचवां चरण: कार्रवाइयां करना
अब सब कुछ सेट हो गया है, इसलिए अपने ऐप्लिकेशन में पढ़ने और लिखने से जुड़ी कार्रवाइयां करें.
डेटा सेव करने की अनुमति दें
अपने डेटा को एक रिकॉर्ड के रूप में व्यवस्थित करना. इसकी सूची देखें डेटा टाइप, Health Connect में उपलब्ध है.
val stepsRecord = StepsRecord(
count = 120,
startTime = START_TIME,
endTime = END_TIME,
startZoneOffset = START_ZONE_OFFSET,
endZoneOffset = END_ZONE_OFFSET,
)
इसके बाद, insertRecords
का इस्तेमाल करके अपना रिकॉर्ड लिखें.
suspend fun insertSteps(healthConnectClient: HealthConnectClient) {
try {
val stepsRecord = StepsRecord(
count = 120,
startTime = START_TIME,
endTime = END_TIME,
startZoneOffset = START_ZONE_OFFSET,
endZoneOffset = END_ZONE_OFFSET,
)
healthConnectClient.insertRecords(listOf(stepsRecord))
} catch (e: Exception) {
// Run error handling here
}
}
डेटा पढ़ने की अनुमति दें
readRecords
का इस्तेमाल करके, अपने डेटा को अलग-अलग पढ़ा जा सकता है.
suspend fun readStepsByTimeRange(
healthConnectClient: HealthConnectClient,
startTime: Instant,
endTime: Instant
) {
try {
val response =
healthConnectClient.readRecords(
ReadRecordsRequest(
StepsRecord::class,
timeRangeFilter = TimeRangeFilter.between(startTime, endTime)
)
)
for (stepRecord in response.records) {
// Process each step record
}
} catch (e: Exception) {
// Run error handling here.
}
}
इनका इस्तेमाल करके, इकट्ठा किए गए डेटा को एक साथ देखा जा सकता है
aggregate
.
suspend fun aggregateSteps(
healthConnectClient: HealthConnectClient,
startTime: Instant,
endTime: Instant
) {
try {
val response = healthConnectClient.aggregate(
AggregateRequest(
metrics = setOf(StepsRecord.COUNT_TOTAL),
timeRangeFilter = TimeRangeFilter.between(startTime, endTime)
)
)
// The result may be null if no data is available in the time range
val stepCount = response[StepsRecord.COUNT_TOTAL]
} catch (e: Exception) {
// Run error handling here
}
}
वीडियो ट्यूटोरियल
Health Connect की सुविधाओं के बारे में ज़्यादा जानकारी देने वाले ये वीडियो देखें आसान इंटिग्रेशन के लिए, सबसे सही दिशा-निर्देश के तौर पर:
- Health Connect में अनुमतियां मैनेज करना
- Health Connect में पढ़ना और लिखना
- Health Connect को बेहतर तरीके से इंटिग्रेट करने के बारे में सलाह
संसाधन
इन संसाधनों को देखें. इनसे मदद मिलेगी जो बाद में डेवलप किए गए हैं.
- Health Connect SDK टूल (Jetpack पर उपलब्ध है): इस SDK टूल को अपने Health Connect API का इस्तेमाल करने के लिए.
- एपीआई का रेफ़रंस: यहां देखें Jetpack के रेफ़रंस Health Connect API.
- डेटा टाइप के इस्तेमाल का एलान करें: Play Console में, Health Connect के अलग-अलग डेटा टाइप को ऐक्सेस करने का एलान करना ऐप्लिकेशन उसी जानकारी को पढ़ता है और लिखता है.
- वैकल्पिक GitHub कोड सैंपल और कोडलैब: GitHub कोड का सैंपल देखें डेटा स्टोर करने की जगह और कोडलैब की कसरत का इस्तेमाल करके, शुरू किया गया.
अगले चरण
इनमें कार्रवाइयां करने का तरीका जानने के लिए, सामान्य वर्कफ़्लो देखें Health Connect में ये शामिल हैं: