خواندن داده های خام

مثال زیر نحوه خواندن داده های خام را به عنوان بخشی از گردش کار رایج به شما نشان می دهد.

ساده بخوانید

نوع داده Steps در Health Connect تعداد مراحلی را که کاربر بین خواندن انجام داده است را نشان می دهد. شمارش گام ها نشان دهنده یک اندازه گیری مشترک در پلتفرم های سلامت، تناسب اندام و سلامتی است. Health Connect خواندن و نوشتن داده‌های شمارش گام را ساده می‌کند.

برای خواندن رکوردها، یک ReadRecordsRequest ایجاد کنید و زمانی که با readRecords تماس می‌گیرید، آن را تهیه کنید.

مثال زیر نشان می دهد که چگونه می توان داده های شمارش گام را برای یک کاربر در مدت زمان معینی خواند. برای مثال توسعه یافته با SensorManager ، راهنمای داده شمارش گام را ببینید.

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
    }
}

داده های نوشته شده قبلی را بخوانید

اگر برنامه‌ای قبلاً سوابق را در Health Connect نوشته باشد، این امکان برای آن برنامه وجود دارد که آنها را بدون نیاز به مجوز خواندن برای آن سوابق خاص بازخوانی کند. این برای سناریوهایی که در آن برنامه باید پس از نصب مجدد توسط کاربر، با Health Connect مجدداً همگام شود، کاربرد دارد.

برای خواندن داده ها در این سناریو، باید نام بسته را به عنوان یک شی DataOrigin در پارامتر dataOriginFilter ReadRecordsRequest خود نشان دهید.

مثال زیر نحوه نشان دادن نام بسته را هنگام خواندن رکوردهای Steps نشان می دهد:

try {
    val response =  healthConnectClient.readRecords(
        ReadRecordsRequest(
            recordType = StepsRecord::class,
            timeRangeFilter = TimeRangeFilter.between(startTime, endTime),
            dataOriginFilter = setOf(DataOrigin("com.my.package.name"))
        )
    )
    for (record in response.records) {
        // Process each record
    }
} catch (e: Exception) {
    // Run error handling here
}

محدودیت خواندن 30 روزه

Health Connect می‌تواند داده‌ها را تا 30 روز قبل از اولین اعطای مجوز بخواند.

با این حال، اگر کاربری برنامه شما را حذف کند، تاریخچه مجوز از بین می رود. اگر کاربر برنامه شما را مجدداً نصب کند و دوباره مجوز بدهد، برنامه شما می‌تواند تا 30 روز قبل از تاریخ جدید داده‌ها را از Health Connect بخواند.

مثال

اگر کاربر برای اولین بار در 30 مارس 2023 مجوز خواندن را به برنامه شما اعطا کرد، اولین اطلاعاتی که برنامه شما می تواند بازخوانی کند از 28 فوریه 2023 به بعد خواهد بود.

سپس کاربر برنامه شما را در 10 مه 2023 حذف می کند. کاربر تصمیم می گیرد آن را در 15 مه 2023 مجدداً نصب کند و اجازه خواندن را اعطا کند. اولین تاریخی که برنامه شما اکنون می تواند داده ها را بخواند ، 15 آوریل 2023 است.

محدودیت پیش زمینه

خواندن داده ها با Health Connect محدود به برنامه هایی است که در پیش زمینه اجرا می شوند. این محدودیت برای تقویت بیشتر حریم خصوصی کاربران اعمال شده است. این به کاربران اطمینان می دهد که Health Connect به داده های آنها دسترسی به خواندن پس زمینه ندارد و داده ها فقط در پیش زمینه خوانده می شوند و قابل دسترسی هستند.

برای موقعیت هایی که در آن وقفه قابل تحمل است ، مانند نمایش خواندن در برنامه شما، مستقیماً از Health Connect به برنامه مشتری خود بخوانید.

برای موقعیت‌هایی که ترجیح می‌دهید هیچ وقفه‌ای وجود نداشته باشد ، مانند خواندن طیف وسیعی از داده‌ها از Health Connect و سپس نوشتن و آپلود آن در جای دیگری، به جای یک Activity که می‌توان آن را به سرعت رد کرد، از یک ForegroundService استفاده کنید.