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

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

قراءة بسيطة

يسجّل نوع بيانات "الخطوات" في 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، بدلاً من نشاط يمكن فيه إغلاقه بسرعة.