اندازه گیری سلامت نقطه ای را با MeasureClient انجام دهید
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
با MeasureClient API، برنامه شما برای دریافت دادهها برای مدت زمان کوتاهی تماسهای برگشتی را ثبت میکند. این برای شرایطی است که برنامه شما در حال استفاده است و به بهروزرسانی سریع داده نیاز دارد. در صورت امکان، این را با یک رابط کاربری پیش زمینه ایجاد کنید تا کاربر آگاه باشد.
وابستگی ها را اضافه کنید
برای افزودن وابستگی به خدمات سلامت، باید مخزن Google Maven را به پروژه خود اضافه کنید. برای اطلاعات بیشتر، به مخزن Maven Google مراجعه کنید.
سپس، در فایل build.gradle در سطح ماژول، وابستگی زیر را اضافه کنید:
قبل از ثبت نام برای بهروزرسانی داده، بررسی کنید که دستگاه میتواند نوع دادههای مورد نیاز برنامه شما را ارائه دهد. ابتدا با بررسی قابلیتها، میتوانید ویژگیهای خاصی را فعال یا غیرفعال کنید یا رابط کاربری برنامه خود را برای جبران قابلیتهایی که در دسترس نیستند تغییر دهید.
مثال زیر نحوه بررسی اینکه آیا دستگاهی میتواند نوع داده HEART_RATE_BPM را ارائه دهد نشان میدهد:
هر تماس برگشتی که ثبت می کنید برای یک نوع داده واحد است. توجه داشته باشید که برخی از انواع دادهها ممکن است حالتهای مختلف در دسترس بودن داشته باشند. برای مثال، زمانی که دستگاه به درستی به مچ دست وصل نشده باشد، ممکن است دادههای ضربان قلب در دسترس نباشد.
مهم است که مدت زمان ثبت تماس شما را به حداقل برسانید، زیرا تماسهای برگشتی باعث افزایش نرخ نمونهگیری حسگر میشوند که به نوبه خود مصرف انرژی را افزایش میدهد.
مثال زیر نحوه ثبت و لغو ثبت تماس برای دریافت داده های HEART_RATE_BPM را نشان می دهد:
valheartRateCallback=object:MeasureCallback{overridefunonAvailabilityChanged(dataType:DeltaDataType<*,*>,availability:Availability){if(availabilityisDataTypeAvailability){// Handle availability change.}}overridefunonDataReceived(data:DataPointContainer){// Inspect data points.}}valhealthClient=HealthServices.getClient(this/*context*/)valmeasureClient=healthClient.measureClient// Register the callback.measureClient.registerMeasureCallback(DataType.Companion.HEART_RATE_BPM,heartRateCallback)// Unregister the callback.awaitClose{runBlocking{measureClient.unregisterMeasureCallbackAsync(DataType.Companion.HEART_RATE_BPM,heartRateCallback)}}
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Take spot health measurements with MeasureClient\n\nWith the\n[`MeasureClient`](/reference/androidx/health/services/client/MeasureClient)\nAPI, your app registers callbacks to receive data for a short amount of time.\nThis is meant for situations in which your app is in use and requires rapid data\nupdates. If possible, create this with a foreground UI so that the user is\naware.\n| **Note:** `MeasureClient` is not suitable for workout tracking. Instead, [record an\n| exercise](/training/wearables/health-services/active-data/exercise-client) using `ExerciseClient`.\n\nAdd dependencies\n----------------\n\nTo add a dependency on Health Services, you must add the Google Maven repository\nto your project. For more information, see\n[Google's Maven repository](/studio/build/dependencies#google-maven).\n\nThen, in your module-level `build.gradle` file, add the following dependency: \n\n### Groovy\n\n```groovy\ndependencies {\n implementation \"androidx.health:health-services-client:1.1.0-alpha05\"\n}\n```\n\n### Kotlin\n\n```kotlin\ndependencies {\n implementation(\"androidx.health:health-services-client:1.1.0-alpha05\")\n}\n```\n| **Note:** This API is asynchronous and relies on `ListenableFuture` extensively. See [Using a ListenableFuture](/guide/background/listenablefuture) for more information about this concept.\n\nCheck capabilities\n------------------\n\nBefore registering for data updates, check that the device can provide the type\nof data your app needs. By checking capabilities first, you can enable or\ndisable certain features or modify your app's UI to compensate for capabilities\nthat are not available.\n\nThe following example shows how to check whether a device can provide the\n`HEART_RATE_BPM` data type: \n\n val healthClient = HealthServices.getClient(this /*context*/)\n val measureClient = healthClient.measureClient\n lifecycleScope.launch {\n val capabilities = measureClient.getCapabilitiesAsync().await()\n supportsHeartRate = DataType.HEART_RATE_BPM in capabilities.supportedDataTypesMeasure\n }\n\nRegister for data\n-----------------\n\n| **Note:** Request necessary permissions before registering to receive data that requires a permission.\n\nEach callback you register is for a single data type. Note that some data types\nmight have varying states of availability. For example, heart rate data might not\nbe available when the device is not properly attached to the wrist.\n\nIt's important to minimize the amount of time that your callback is registered,\nas callbacks cause an increase in sensor sampling rates, which in turn increases\npower consumption.\n\nThe following example shows how to register and unregister a callback to receive\n`HEART_RATE_BPM` data: \n\n val heartRateCallback = object : MeasureCallback {\n override fun onAvailabilityChanged(dataType: DeltaDataType\u003c*, *\u003e, availability: Availability) {\n if (availability is DataTypeAvailability) {\n // Handle availability change.\n }\n }\n\n override fun onDataReceived(data: DataPointContainer) {\n // Inspect data points.\n }\n }\n val healthClient = HealthServices.getClient(this /*context*/)\n val measureClient = healthClient.measureClient\n\n // Register the callback.\n measureClient.registerMeasureCallback(DataType.Companion.HEART_RATE_BPM, heartRateCallback)\n\n // Unregister the callback.\n awaitClose {\n runBlocking {\n measureClient.unregisterMeasureCallbackAsync(DataType.Companion.HEART_RATE_BPM, heartRateCallback)\n }\n }\n\n| **Note:** Kotlin developers can use `callbackFlow` to take advantage of coroutines and lifecycle. See the [Measure Data sample](https://github.com/android/health-samples/tree/main/health-services/MeasureDataCompose) on GitHub for an example."]]