এই নির্দেশিকাটি Health Connect সংস্করণ 1.1.0-alpha12 এর সাথে সামঞ্জস্যপূর্ণ।
স্বাস্থ্য সংযোগ পেরিফেরাল শরীরের তাপমাত্রা পরিমাপ করার জন্য একটি ত্বকের তাপমাত্রার ডেটা টাইপ প্রদান করে। এই পরিমাপ ঘুমের গুণমান, প্রজনন স্বাস্থ্য এবং অসুস্থতার সম্ভাব্য সূত্রপাত সনাক্ত করার জন্য একটি বিশেষ উপযোগী সংকেত।
স্বাস্থ্য সংযোগের উপলব্ধতা পরীক্ষা করুন
Health Connect ব্যবহার করার চেষ্টা করার আগে, আপনার অ্যাপটিকে যাচাই করা উচিত যে ব্যবহারকারীর ডিভাইসে Health Connect উপলব্ধ রয়েছে। Health Connect সব ডিভাইসে আগে থেকে ইনস্টল নাও থাকতে পারে বা অক্ষম করা যেতে পারে। আপনি HealthConnectClient.getSdkStatus()
পদ্ধতি ব্যবহার করে উপলব্ধতা পরীক্ষা করতে পারেন।
হেলথ কানেক্টের প্রাপ্যতা কিভাবে চেক করবেন
fun checkHealthConnectAvailability(context: Context) { val providerPackageName = "com.google.android.apps.healthdata" // Or get from HealthConnectClient.DEFAULT_PROVIDER_PACKAGE_NAME val availabilityStatus = HealthConnectClient.getSdkStatus(context, providerPackageName) if (availabilityStatus == HealthConnectClient.SDK_UNAVAILABLE) { // Health Connect is not available. Guide the user to install/enable it. // For example, show a dialog. return // early return as there is no viable integration } if (availabilityStatus == HealthConnectClient.SDK_UNAVAILABLE_PROVIDER_UPDATE_REQUIRED) { // Health Connect is available but requires an update. // 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 } // Health Connect is available, obtain a HealthConnectClient instance val healthConnectClient = HealthConnectClient.getOrCreate(context) // Issue operations with healthConnectClient }
getSdkStatus()
দ্বারা প্রত্যাবর্তিত স্থিতির উপর নির্ভর করে, আপনি প্রয়োজনে Google Play Store থেকে 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
ব্যবহার করুন। এটি স্বাস্থ্য সংযোগের অনুমতি স্ক্রীন প্রদর্শন করে।
// 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)
}
}
যেহেতু ব্যবহারকারীরা যেকোন সময় অনুমতি মঞ্জুর বা প্রত্যাহার করতে পারে, আপনার অ্যাপটিকে পর্যায়ক্রমে মঞ্জুর করা অনুমতিগুলি পরীক্ষা করতে হবে এবং অনুমতি হারিয়ে গেলে পরিস্থিতিগুলি পরিচালনা করতে হবে।
তথ্য একটি চামড়া তাপমাত্রা রেকর্ড অন্তর্ভুক্ত
ত্বকের তাপমাত্রা পরিমাপ রেকর্ডে সংগঠিত হয়। প্রতিটি রেকর্ড নিম্নলিখিত তথ্য নিয়ে গঠিত:
- বেসলাইন তাপমাত্রা , ডিগ্রী সেলসিয়াস বা ডিগ্রী ফারেনহাইট। এটি একটি ঐচ্ছিক মান যা আপনার অ্যাপের UI-তে ভিজ্যুয়ালাইজেশনের জন্য সবচেয়ে উপযোগী।
- ত্বকের তাপমাত্রায় ডেল্টার একটি তালিকা , প্রতিটি শেষ পরিমাপের পর থেকে ত্বকের তাপমাত্রার পরিবর্তন দেখায়। বেসলাইন তাপমাত্রা প্রদান করা হলে, এই ডেল্টা একই তাপমাত্রা ইউনিট ব্যবহার করা উচিত.
- ব্যবহারকারীর শরীরের অবস্থান যেখানে পরিমাপ করা হয়েছিল: আঙুল, পায়ের আঙ্গুল বা কব্জি।
সমর্থিত সমষ্টি
SkinTemperatureRecord
জন্য নিম্নলিখিত সমষ্টিগত মানগুলি উপলব্ধ:
উদাহরণ ব্যবহার
নিম্নলিখিত কোড স্নিপেটগুলি দেখায় যে কীভাবে ত্বকের তাপমাত্রা পরিমাপ পড়তে এবং লিখতে হয়।
ত্বকের তাপমাত্রার রেকর্ড পড়ুন
নিম্নলিখিত কোড স্নিপেট জেটপ্যাক লাইব্রেরি ব্যবহার করে কীভাবে ত্বকের তাপমাত্রা পরিমাপ পড়তে হয় তা প্রদর্শন করে:
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.
}
}
একটি ত্বকের তাপমাত্রা রেকর্ড লিখুন
নিম্নলিখিত কোড স্নিপেট দেখায় কিভাবে জেটপ্যাক লাইব্রেরি ব্যবহার করে ত্বকের তাপমাত্রা পরিমাপ লিখতে হয়:
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)
),
)
)
)
}