यह गाइड, Health Connect के 1.1.0-alpha12 वर्शन के साथ काम करती है.
Health Connect, त्वचा के तापमान का डेटा टाइप उपलब्ध कराता है. इससे शरीर के बाहरी हिस्से का तापमान मापा जाता है. यह मेज़रमेंट, नींद की क्वालिटी, प्रजनन स्वास्थ्य, और बीमारी की शुरुआत का पता लगाने के लिए खास तौर पर मददगार सिग्नल है.
सुविधा की उपलब्धता
यह पता लगाने के लिए कि उपयोगकर्ता के डिवाइस पर Health Connect में त्वचा के तापमान की सुविधा काम करती है या नहीं, क्लाइंट परFEATURE_SKIN_TEMPERATURE
की उपलब्धता देखें:
if (healthConnectClient
.features
.getFeatureStatus(
HealthConnectFeatures.FEATURE_SKIN_TEMPERATURE
) == HealthConnectFeatures.FEATURE_STATUS_AVAILABLE) {
// Feature is available
} else {
// Feature isn't available
}
ज़्यादा जानने के लिए, सुविधा की उपलब्धता की जांच करना लेख पढ़ें.
ज़रूरी अनुमतियां
त्वचा के तापमान की जानकारी को ऐक्सेस करने के लिए, इन अनुमतियों का इस्तेमाल किया जाता है:
android.permission.health.READ_SKIN_TEMPERATURE
android.permission.health.WRITE_SKIN_TEMPERATURE
अपने ऐप्लिकेशन में स्किन के तापमान का डेटा इकट्ठा करने की सुविधा जोड़ने के लिए, SkinTemperature
डेटा टाइप के लिए लिखने की अनुमतियों का अनुरोध करें.
स्किन के तापमान की जानकारी लिखने के लिए, आपको यह अनुमति ज़ाहिर करनी होगी:
<application>
<uses-permission
android:name="android.permission.health.WRITE_SKIN_TEMPERATURE" />
...
</application>
त्वचा के तापमान से जुड़ी जानकारी पढ़ने के लिए, आपको ये अनुमतियां मांगनी होंगी:
<application>
<uses-permission
android:name="android.permission.health.READ_SKIN_TEMPERATURE" />
...
</application>
उपयोगकर्ता से अनुमतियों का अनुरोध करना
क्लाइंट इंस्टेंस बनाने के बाद, आपके ऐप्लिकेशन को उपयोगकर्ता से अनुमतियों का अनुरोध करना होगा. उपयोगकर्ताओं को किसी भी समय अनुमतियां देने या अस्वीकार करने की अनुमति होनी चाहिए.
इसके लिए, ज़रूरी डेटा टाइप के लिए अनुमतियों का सेट बनाएं. पक्का करें कि सेट में मौजूद अनुमतियों का एलान, सबसे पहले आपके Android मेनिफ़ेस्ट में किया गया हो.
// Create a set of permissions for required data types
val PERMISSIONS =
setOf(
HealthPermission.getReadPermission(SkinTemperatureRecord::class),
HealthPermission.getWritePermission(SkinTemperatureRecord::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)
}
}
उपयोगकर्ता किसी भी समय अनुमतियां दे सकते हैं या उन्हें रद्द कर सकते हैं. इसलिए, आपके ऐप्लिकेशन को समय-समय पर यह जांच करनी चाहिए कि कौनसी अनुमतियां दी गई हैं. साथ ही, उन स्थितियों को मैनेज करना चाहिए जिनमें अनुमति नहीं दी गई है.
त्वचा के तापमान के रिकॉर्ड में शामिल जानकारी
त्वचा के तापमान को मापने से जुड़े डेटा को रिकॉर्ड में व्यवस्थित किया जाता है. हर रिकॉर्ड में यह जानकारी शामिल होती है:
- बेसलाइन तापमान, डिग्री सेल्सियस या डिग्री फ़ैरनहाइट में. यह एक वैकल्पिक वैल्यू है. यह आपके ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) में विज़ुअलाइज़ेशन के लिए सबसे ज़्यादा काम की होती है.
- त्वचा के तापमान में हुए बदलाव की डेल्टा की सूची. इसमें हर बदलाव, पिछली बार मेज़रमेंट के बाद से त्वचा के तापमान में हुए बदलाव को दिखाता है. अगर बेसलाइन तापमान दिया गया है, तो इन डेल्टा में तापमान की एक ही यूनिट का इस्तेमाल किया जाना चाहिए.
- उपयोगकर्ता के शरीर का वह हिस्सा जहां से माप लिया गया है: उंगली, पैर की उंगली या कलाई.
इस्तेमाल किए जा सकने वाले एग्रीगेशन
इस डेटा टाइप के लिए, एग्रीगेशन की सुविधा काम नहीं करती.
इस्तेमाल का उदाहरण
JetPack लाइब्रेरी का इस्तेमाल करके, त्वचा के तापमान की माप पढ़ें या लिखें.
त्वचा के तापमान से जुड़ी जानकारी देखें
यहां दिए गए कोड स्निपेट में, Jetpack लाइब्रेरी का इस्तेमाल करके त्वचा के तापमान की रीडिंग लेने का तरीका बताया गया है:
suspend fun readSkinTemperatures() {
// Error handling, permission check, and feature availability check
// aren't included.
// Record includes measurements during the past hour.
val recordEndTime = Instant.now()
val recordStartTime = recordEndTime.minusSeconds(60 * 60)
val response = healthConnectClient.readRecords(
ReadRecordsRequest<SkinTemperatureRecord>(
timeRangeFilter = TimeRangeFilter.between(
recordStartTime, recordEndTime
)
)
)
for (skinTemperatureRecord in response.records) {
// Process each skin temperature record here.
}
}
त्वचा के तापमान से जुड़ी जानकारी में बदलाव करें
यहां दिए गए कोड स्निपेट में, Jetpack लाइब्रेरी का इस्तेमाल करके, त्वचा के तापमान को मेज़र करने का तरीका बताया गया है:
suspend fun writeSkinTemperatures(): InsertRecordsResponse {
// Error handling, permission check, and feature availability check
// aren't included.
// Record includes measurements during the past hour.
val recordEndTime: ZonedDateTime = now()
val recordStartTime: ZonedDateTime = recordEndTime.minusHours(1)
healthConnectClient.insertRecords(
// For this example, there's only one skin temperature record.
listOf(
SkinTemperatureRecord(
baseline = Temperature.celsius(37.0),
startTime = recordStartTime.toInstant(),
startZoneOffset = recordStartTime.offset,
endTime = recordEndTime.toInstant(),
endZoneOffset = recordEndTime.offset,
deltas = listOf(
SkinTemperatureRecord.Delta(
recordEndTime.minusMinutes(50).toInstant(), celsius(0.5)
), SkinTemperatureRecord.Delta(
recordEndTime.minusMinutes(30).toInstant(), celsius(-0.7)
)
),
measurementLocation = SkinTemperatureRecord.MEASUREMENT_LOCATION_FINGER,
metadata = Metadata.autoRecorded(
device = Device(type = Device.TYPE_RING)
),
)
)
)
}