قراءة البيانات الأولية

يوضح لك المثال التالي كيفية قراءة البيانات الأولية كجزء من سير العمل الشائع.

قراءة بسيطة

يسجّل نوع بيانات "الخطوات" في 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.

يوضح المثال التالي كيفية الإشارة إلى اسم الحزمة عند قراءة سجلات الخطوات:

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 يومًا قبل منح أي إذن لأول مرة.

ومع ذلك، إذا حذف أحد المستخدمين تطبيقك، ستفقد سجلّ الأذونات. وإذا أعاد المستخدم تثبيت تطبيقك ومنحه الإذن مرة أخرى، يمكن لتطبيقك قراءة البيانات الواردة من Health Connect قبل 30 يومًا من ذلك التاريخ الجديد.

مثال

إذا منحك المستخدم إذنًا بالقراءة لأول مرة لتطبيقك في 30 آذار (مارس) 2023، سيعود تطبيقك إلى أقرب وقت يمكن فيه الاطّلاع على البيانات اعتبارًا من 28 شباط (فبراير) 2023.

بعد ذلك، يحذف المستخدِم تطبيقك في 10 أيار (مايو) 2023. يقرّر المستخدم إعادة تثبيته في 15 مايو 2023 ومنح إذن القراءة. إنّ أقرب تاريخ يمكن لتطبيقك الآن قراءة البيانات منه هو 15 نيسان (أبريل) 2023.

القيود التي تعمل في المقدّمة

تقتصر قراءة البيانات باستخدام Health Connect على التطبيقات التي تعمل في المقدّمة. وقد تم تطبيق هذا الشرط لتعزيز خصوصية المستخدم. يطمئن ذلك المستخدمين أنّ تطبيق Health Connect لا يتمكّن من الوصول إلى بياناتهم في الخلفية للاطّلاع على البيانات، وأنّه لا تتم قراءة البيانات والوصول إليها إلا في المقدّمة.

بالنسبة إلى الحالات التي تكون فيها الانقطاعات مقبولة، مثل عرض قراءة في تطبيقك، يمكنك القراءة مباشرةً من Health Connect إلى تطبيق العميل.

بالنسبة إلى الحالات التي تفضّل فيها عدم الإزعاج، مثل قراءة مجموعة من البيانات من Health Connect ثم كتابتها وتحميلها في مكان آخر، استخدِم ForegroundService بدلاً من "نشاط" يمكن إغلاقه بسرعة.