เขียนข้อมูล

คู่มือนี้ครอบคลุมกระบวนการเขียนหรืออัปเดตข้อมูลใน Health Connect

ตั้งค่าโครงสร้างข้อมูล

ก่อนที่จะเขียนข้อมูล เราจำเป็นต้องตั้งค่าระเบียนก่อน สำหรับข้อมูลมากกว่า 50 รายการ แต่ละประเภทจะมีโครงสร้างของตนเอง ดูรายละเอียดเพิ่มเติมเกี่ยวกับข้อมูลได้ที่ข้อมูลอ้างอิงของ Jetpack ประเภทต่างๆ ที่ใช้ได้

ระเบียนพื้นฐาน

ประเภทข้อมูลขั้นตอนใน Health Connect จะบันทึกจำนวนขั้นตอน ผู้ใช้ได้อ่านระหว่างการอ่าน จํานวนก้าวแสดงถึงการวัดทั่วไป ในแพลตฟอร์มด้านสุขภาพ การออกกำลังกาย และสุขภาวะ

ตัวอย่างต่อไปนี้แสดงวิธีตั้งข้อมูลจำนวนก้าว

val stepsRecord = StepsRecord(
    count = 120,
    startTime = START_TIME,
    endTime = END_TIME,
    startZoneOffset = START_ZONE_OFFSET,
    endZoneOffset = END_ZONE_OFFSET
)

ระเบียนที่มีหน่วยวัด

Health Connect สามารถจัดเก็บค่าพร้อมกับหน่วยวัดเพื่อระบุ ความแม่นยำ ตัวอย่างหนึ่งคือประเภทข้อมูลโภชนาการที่มีปริมาณมหาศาล ครอบคลุม โดยมีช่องสารอาหารหลากหลายชนิดที่เลือกใช้ได้ตั้งแต่ ตั้งแต่คาร์โบไฮเดรตทั้งหมดไปจนถึงวิตามิน แต่ละจุดข้อมูลแสดงถึงสารอาหาร ที่อาจบริโภคเป็นส่วนหนึ่งของมื้ออาหารหรืออาหาร

ในประเภทข้อมูลนี้ สารอาหารทั้งหมดจะแสดงในหน่วยของ Mass ในขณะที่ energy จะแสดงเป็นหน่วย Energy

ตัวอย่างต่อไปนี้แสดงวิธีตั้งข้อมูลโภชนาการสำหรับผู้ใช้ที่มี กินกล้วย:

val banana = NutritionRecord(
    name = "banana",
    energy = 105.0.kilocalories,
    dietaryFiber = 3.1.grams,
    potassium = 0.422.grams,
    totalCarbohydrate = 27.0.grams,
    totalFat = 0.4.grams,
    saturatedFat = 0.1.grams,
    sodium = 0.001.grams,
    sugar = 14.0.grams,
    vitaminB6 = 0.0005.grams,
    vitaminC = 0.0103.grams,
    startTime = START_TIME,
    endTime = END_TIME,
    startZoneOffset = START_ZONE_OFFSET,
    endZoneOffset = END_ZONE_OFFSET
)

ระเบียนที่มีข้อมูลชุด

Health Connect สามารถจัดเก็บรายการข้อมูลชุดหนังสือ ตัวอย่างหนึ่งคือ ประเภทข้อมูลอัตราการเต้นของหัวใจที่รวบรวมชุดตัวอย่างการเต้นของหัวใจ ที่ตรวจพบระหว่างการอ่านค่า

ในประเภทข้อมูลนี้ พารามิเตอร์ samples จะแสดงด้วยรายการของ ตัวอย่างอัตราการเต้นของหัวใจ ตัวอย่างแต่ละรายการจะมี beatsPerMinute และค่า time

ตัวอย่างต่อไปนี้แสดงวิธีการตั้งค่าข้อมูลอนุกรมอัตราการเต้นของหัวใจ

val heartRateRecord = HeartRateRecord(
    startTime = START_TIME,
    startZoneOffset = START_ZONE_OFFSET,
    endTime = END_TIME,
    endZoneOffset = END_ZONE_OFFSET,
    // records 10 arbitrary data, to replace with actual data
    samples = List(10) { index ->
        HeartRateRecord.Sample(
            time = START_TIME + Duration.ofSeconds(index.toLong()),
            beatsPerMinute = 100 + index.toLong(),
        )
    }
)

เขียนข้อมูล

หนึ่งในเวิร์กโฟลว์ทั่วไปใน Health Connect คือการเขียนข้อมูล หากต้องการเพิ่มระเบียน ใช้ insertRecords

ตัวอย่างต่อไปนี้แสดงวิธีเขียนข้อมูลที่แทรกจำนวนก้าว

suspend fun insertSteps(healthConnectClient: HealthConnectClient) {
    try {
        val stepsRecord = StepsRecord(
            count = 120,
            startTime = START_TIME,
            endTime = END_TIME,
            startZoneOffset = START_ZONE_OFFSET,
            endZoneOffset = END_ZONE_OFFSET
        )
        healthConnectClient.insertRecords(listOf(stepsRecord))
    } catch (e: Exception) {
        // Run error handling here
    }
}

อัปเดตข้อมูล

หากคุณจำเป็นต้องเปลี่ยนระเบียนอย่างน้อย 1 รายการ โดยเฉพาะเมื่อต้องการ ซิงค์พื้นที่เก็บข้อมูลแอปกับข้อมูลจาก Health Connect คุณสามารถอัปเดต ข้อมูลของคุณ การอัปเดตข้อมูลที่มีอยู่ทำได้ 2 วิธี ซึ่งขึ้นอยู่กับ ที่ใช้ค้นหาระเบียน

ข้อมูลเมตา

คุณควรสอบ Metadata ชั้นเรียนก่อน เนื่องจากเป็นสิ่งจำเป็นเมื่อ กำลังอัปเดตข้อมูล ขณะสร้าง Record แต่ละรายการใน Health Connect มี metadata พร็อพเพอร์ตี้ต่อไปนี้เกี่ยวข้องกับ การซิงค์:

คุณสมบัติ คำอธิบาย
id ทุกRecordใน Health Connect มีidที่ไม่ซ้ำกัน
Health Connect จะป้อนข้อมูลนี้โดยอัตโนมัติ เมื่อแทรกระเบียนใหม่
lastModifiedTime ทุกRecordยังติดตามเวลาล่าสุด แก้ไขระเบียนแล้ว
Health Connect จะป้อนข้อมูลนี้โดยอัตโนมัติ
clientRecordId Record แต่ละรายการสามารถมีรหัสที่ไม่ซ้ำกันซึ่งเชื่อมโยงกับ เพื่อใช้เป็นข้อมูลอ้างอิงในพื้นที่เก็บข้อมูลแอป
แอปของคุณให้ค่านี้
clientRecordVersion โดยที่ระเบียนมี clientRecordId ค่า คุณสามารถใช้ clientRecordVersion เพื่ออนุญาตให้ข้อมูล ซิงค์กับเวอร์ชันในแอปอยู่เสมอ เก็บข้อมูล
แอปของคุณให้ค่านี้

อัปเดตผ่าน Record ID

หากต้องการอัปเดตข้อมูล ให้เตรียมระเบียนที่จำเป็นก่อน ทำการเปลี่ยนแปลงใดๆ กับ บันทึกไว้หากจําเป็น จากนั้นโทรไปที่ updateRecords เพื่อ การเปลี่ยนแปลงได้

ตัวอย่างต่อไปนี้แสดงวิธีอัปเดตข้อมูล สำหรับวัตถุประสงค์นี้ แต่ละระเบียน มีการปรับค่าออฟเซ็ตโซนเป็น PST

suspend fun updateSteps(
    healthConnectClient: HealthConnectClient,
    prevRecordStartTime: Instant,
    prevRecordEndTime: Instant
) {
    try {
        val request = healthConnectClient.readRecords(
            ReadRecordsRequest(
                recordType = StepsRecord::class,
                timeRangeFilter = TimeRangeFilter.between(
                    prevRecordStartTime,
                    prevRecordEndTime
                )
            )
        )

        val newStepsRecords = arrayListOf<StepsRecord>()
        for (record in request.records) {
            // Adjusted both offset values to reflect changes
            val sr = StepsRecord(
                count = record.count,
                startTime = record.startTime,
                startZoneOffset = record.startTime.atZone(ZoneId.of("PST")).offset,
                endTime = record.endTime,
                endZoneOffset = record.endTime.atZone(ZoneId.of("PST")).offset,
                metadata = record.metadata
            )
            newStepsRecords.add(sr)
        }

        client.updateRecords(newStepsRecords)
    } catch (e: Exception) {
        // Run error handling here
    }
}

อัปเกรดผ่านรหัสระเบียนไคลเอ็นต์

ถ้าคุณใช้ค่ารหัสระเบียนไคลเอ็นต์และเวอร์ชันระเบียนไคลเอ็นต์ที่ไม่บังคับ เราขอแนะนำให้ใช้ insertRecords แทน updateRecords

ฟังก์ชัน insertRecords มีความสามารถในการอัปเสิร์ตข้อมูล หากมีข้อมูลอยู่ใน Health Connect โดยอิงตามชุด รหัสระเบียนไคลเอ็นต์จะถูกเขียนทับ มิฉะนั้น ระบบจะเขียนเป็นข้อมูลใหม่ สถานการณ์นี้จะเป็นประโยชน์เมื่อใดก็ตามที่คุณต้องการซิงค์ข้อมูลจาก พื้นที่เก็บข้อมูลแอปไปยัง Health Connect

ตัวอย่างต่อไปนี้แสดงวิธีอัปเดตข้อมูลที่ดึงมาจาก พื้นที่เก็บข้อมูลแอป:

suspend fun pullStepsFromDatastore() : ArrayList<StepsRecord> {
    val appStepsRecords = arrayListOf<StepsRecord>()
    // Pull data from app datastore
    // ...
    // Make changes to data if necessary
    // ...
    // Store data in appStepsRecords
    // ...
    var sr = StepsRecord(
        // Assign parameters for this record
        metadata = Metadata(
            clientRecordId = cid
        )
    )
    appStepsRecords.add(sr)
    // ...
    return appStepsRecords
}

suspend fun upsertSteps(
    healthConnectClient: HealthConnectClient,
    newStepsRecords: ArrayList<StepsRecord>
) {
    try {
        healthConnectClient.insertRecords(newStepsRecords)
    } catch (e: Exception) {
        // Run error handling here
    }
}

หลังจากนั้น คุณจะเรียกใช้ฟังก์ชันเหล่านี้ในชุดข้อความหลักได้

upsertSteps(healthConnectClient, pullStepsFromDatastore())

การตรวจสอบค่าในเวอร์ชันระเบียนไคลเอ็นต์

หากกระบวนการแก้ไขข้อมูลของคุณมีเวอร์ชันระเบียนไคลเอ็นต์, Connect ดำเนินการตรวจสอบการเปรียบเทียบในclientRecordVersion หากเวอร์ชันจากข้อมูลที่แทรกมีค่าสูงกว่าเวอร์ชัน เวอร์ชันที่มีอยู่จากข้อมูลที่มีอยู่ การอัปเซิร์ตจะเกิดขึ้น มิฉะนั้น กระบวนการ ไม่สนใจการเปลี่ยนแปลงและค่าจะยังคงเดิม

หากต้องการรวมการกำหนดเวอร์ชันไว้ในข้อมูลของคุณ คุณต้องระบุ Metadata.clientRecordVersion ที่มีค่า Long ตามการกำหนดเวอร์ชันของคุณ

val sr = StepsRecord(
    count = count,
    startTime = startTime,
    startZoneOffset = startZoneOffset,
    endTime = endTime,
    endZoneOffset = endZoneOffset,
    metadata = Metadata(
        clientRecordId = cid,
        clientRecordVersion = version
    )
)

การอัปเดตจะไม่เพิ่ม version โดยอัตโนมัติเมื่อมีการเปลี่ยนแปลง ซึ่งจะป้องกันไม่ให้เกิดการเขียนทับข้อมูลที่ไม่คาดคิดได้ โดยคุณต้อง ให้ค่าที่สูงกว่าด้วยตัวเอง

แนวทางปฏิบัติแนะนำในการเขียนข้อมูล

แอปต้องเขียนเฉพาะข้อมูลที่จัดหาเองลงใน Health Connect

หากมีการนำเข้าข้อมูลในแอปของคุณจากแอปอื่น หน้าที่ความรับผิดชอบ ตรงกับแอปอื่นที่จะเขียนข้อมูลของตัวเองลงใน Health Connect

เราขอแนะนำให้คุณใช้ตรรกะที่จัดการข้อยกเว้นในการเขียน เช่น ข้อมูลอยู่นอกขอบเขต หรือเป็นข้อผิดพลาดของระบบภายใน คุณสามารถใช้ Backoff และพยายามกลยุทธ์อีกครั้งในกลไกการจัดตารางเวลางาน หากเขียนถึง Health Connect ดำเนินการไม่สำเร็จในที่สุด โปรดตรวจสอบว่าแอปของคุณข้ามผ่านได้ จุดส่งออกดังกล่าว อย่าลืมบันทึกและรายงานข้อผิดพลาดเพื่อช่วยวินิจฉัย

ขณะติดตามข้อมูล เรามีคำแนะนำ 2-3 ข้อที่คุณสามารถ เป็นไปตามวิธีการเขียนข้อมูลของแอป

การติดตามแบบแพสซีฟ

ซึ่งรวมถึงแอปที่ติดตามการออกกำลังกายหรือสุขภาพแบบแพสซีฟ เช่น บันทึกจำนวนก้าวหรืออัตราการเต้นของหัวใจอย่างต่อเนื่องในเบื้องหลัง

แอปของคุณต้องเขียนข้อมูลเป็นระยะลงใน Health Connect ใน วิธีต่อไปนี้

  • ในการซิงค์ทุกครั้ง ให้เขียนเฉพาะข้อมูลใหม่และข้อมูลที่อัปเดตซึ่งมีการแก้ไขตั้งแต่ การซิงค์ครั้งล่าสุด
  • คำขอแยกส่วนไปยังระเบียนสูงสุด 1,000 รายการต่อคำขอการเขียน
  • ใช้ WorkManager เพื่อตั้งเวลางานในเบื้องหลังเป็นระยะด้วย เป็นระยะเวลาอย่างน้อย 15 นาที
  • จำกัดงานให้เรียกใช้เฉพาะเมื่ออุปกรณ์ไม่มีการใช้งานและไม่ได้เหลือน้อย แบตเตอรี่

    val constraints = Constraints.Builder()
        .requiresBatteryNotLow()
        .requiresDeviceIdle(true)
        .build()
    
    val writeDataWork = PeriodicWorkRequestBuilder<WriteDataToHealthConnectWorker>(
            15,
            TimeUnit.MINUTES,
            5,
            TimeUnit.MINUTES
        )
        .setConstraints(constraints)
        .build()
    

การติดตามที่ใช้งานอยู่

ซึ่งรวมถึงแอปที่ติดตามเหตุการณ์ เช่น การออกกำลังกายและการนอนหลับ หรือข้อมูลจากผู้ใช้ด้วยตนเอง เช่น โภชนาการ โดยระเบียนเหล่านี้จะสร้างขึ้นเมื่อแอป อยู่เบื้องหน้าหรืออยู่ในเหตุการณ์ที่ไม่ค่อยเกิดขึ้นซึ่งมีการใช้งาน 2-3 ครั้งใน 1 วัน

ตรวจสอบว่าแอปไม่ได้ให้ Health Connect ทำงานตลอด ระยะเวลาของเหตุการณ์

ต้องเขียนข้อมูลลงใน Health Connect ด้วย 1 ใน 2 วิธีต่อไปนี้

  • ซิงค์ข้อมูลกับ Health Connect หลังจากกิจกรรมสิ้นสุดลง เช่น การซิงค์ ข้อมูลเมื่อผู้ใช้สิ้นสุดเซสชันการออกกำลังกายที่ติดตาม
  • กำหนดเวลางานแบบครั้งเดียวโดยใช้ WorkManager เพื่อซิงค์ข้อมูล ในภายหลัง

แนวทางปฏิบัติแนะนำเกี่ยวกับรายละเอียดและความถี่ของการเขียน

เมื่อเขียนข้อมูลลงใน Health Connect ให้ใช้ความละเอียดที่เหมาะสม การใช้ ความละเอียดที่เหมาะสมจะช่วยลดปริมาณการใช้พื้นที่เก็บข้อมูลขณะที่ยังคง ข้อมูลมีความสม่ำเสมอและถูกต้อง ความละเอียดของข้อมูลครอบคลุม 2 สิ่งต่อไปนี้

  1. ความถี่ในการเขียน: ความถี่ที่แอปพลิเคชันจะพุชข้อมูลใหม่เข้าไปใน Health Connect เช่น เขียนข้อมูลใหม่ทุก 15 นาที
  2. รายละเอียดของข้อมูลที่เขียน: ความถี่ที่ข้อมูลที่ส่งเข้ามาคือ สุ่มตัวอย่าง เช่น เขียนตัวอย่างอัตราการเต้นของหัวใจทุก 5 วินาที ข้อมูลบางประเภทเท่านั้น ต้องใช้อัตราการสุ่มตัวอย่างเดียวกัน การอัปเดตจำนวนก้าวแทบจะไม่มีประโยชน์อะไรเลย ข้อมูลทุกวินาที ซึ่งตรงข้ามกับความถี่ในการอัปโหลดที่น้อยกว่า เช่น ทุก 60 วินาที อย่างไรก็ตาม อัตราการสุ่มตัวอย่างที่สูงขึ้นอาจทำให้ผู้ใช้มีรายละเอียดและ ข้อมูลสุขภาพและการออกกำลังกายแบบละเอียด ความถี่ของอัตราตัวอย่าง ควรมีความสมดุลระหว่างรายละเอียดกับประสิทธิภาพ

เขียนข้อมูลที่ตรวจสอบตลอดทั้งวัน

สำหรับข้อมูลที่รวบรวมอย่างต่อเนื่อง เช่น ขั้นตอน แอปพลิเคชันของคุณควร เขียนลงใน Health Connect อย่างน้อยทุกๆ 15 นาทีตลอดทั้งวัน

ประเภทข้อมูล

หน่วย

ที่คาดไว้

ตัวอย่าง

จำนวนก้าว

จำนวนก้าว

ทุกๆ 1 นาที

23:14 - 23:15 - 5 ก้าว

23:16 - 23:17 - 22 ก้าว

23:17 - 23:18 - 8 ก้าว

แผนการสนทนา

ก้าว/นาที

ทุกๆ 1 นาที

23:14 - 23:15 - 17:00 น.

23:16 - 23:17 - 22 วินาที

23:17 - 23:18 - 20:00 น.

การทำวีลแชร์พุช

พุช

ทุกๆ 1 นาที

23:14 - 23:15 - พุช 5 ครั้ง

23:16 - 23:17 - พุช 22 ครั้ง

23:17 - 23:18 - พุช 8 ครั้ง

แคลอรี่ที่ใช้ไปในการเคลื่อนไหว

แคลอรี่

ทุก 15 นาที

23:15 - 23:30 - 2 แคลอรี

23:30 - 23:45 - 25 แคลอรี

23:45 - 00:00 - 5 แคลอรี

แคลอรี่ที่เผาผลาญทั้งหมด

แคลอรี่

ทุก 15 นาที

23:15 - 23:30 - 16 แคลอรี

23:30 - 23:45 - 16 แคลอรี

23:45 - 00:00 - 16 แคลอรี

ระยะทาง

กม./นาที

ทุกๆ 1 นาที

23:14-23:15 - 0.008 กม.

23:16 - 23:16 - 0.021 กม.

23:17 - 23:18 - 0.012 กม.

ระดับความสูงที่เพิ่มขึ้น

m

ทุกๆ 1 นาที

20:36 - 20:37 - 3.048 นาที

20:39 - 20:40 - 3.048 น.

23:23 - 23:24 - 9.144 นาที

จำนวนชั้นที่เดินขึ้น

ชั้น

ทุกๆ 1 นาที

23:14 - 23:15 - 5 ชั้น

23:16 - 23:16 - 22 ชั้น

23:17 - 23:18 - 8 ชั้น

อัตราการเต้นของหัวใจ

bpm

ทุกๆ 1 นาที

6:11 น. - 55 ครั้งต่อนาที

ความผันแปรของอัตราการเต้นของหัวใจ RCS

มิลลิวินาที

ทุกๆ 1 นาที

6:11 น. - 23 มิลลิวินาที

อัตราการหายใจ

หายใจ/นาที

ทุกๆ 1 นาที

23:14 - 23:15 - 60 ครั้ง/นาที

23:16 - 23:16 - 62 ครั้ง/นาที

23:17 - 23:18 - 64 ครั้ง/นาที

ความอิ่มตัวของออกซิเจน

%

ทุกๆ 1 ชั่วโมง

6:11 - 95.208%

เขียนเซสชัน

ควรเขียนข้อมูลลงใน Health Connect ในช่วงท้ายของการออกกำลังกายหรือการนอนหลับ เซสชัน

แนวทางปฏิบัติที่ดีที่สุดคือควรเขียนเซสชันการนอนหลับหรือการออกกำลังกายด้วย อุปกรณ์บันทึกและข้อมูลเมตาที่เหมาะสม รวมถึง RecordingMethod

อย่างน้อยที่สุด ใบสมัครของคุณควรเป็นไปตามคำแนะนำใน "ที่คาดหวัง" ด้านล่าง สถานที่ หากเป็นไปได้ ให้เลือกทำตาม "แนวทางปฏิบัติที่ดีที่สุด" คำแนะนำ

ข้อมูลที่ติดตามระหว่างออกกำลังกาย

ประเภทข้อมูล

หน่วย

ที่คาดไว้

ขอแสดงความนับถือ

ตัวอย่าง

จำนวนก้าว

จำนวนก้าว

ทุกๆ 1 นาที

ทุกๆ 1 วินาที

23:14-23:15 - 5 ขั้นตอน

23:16 - 23:17 - 22 ก้าว

23:17 - 23:18 - 8 ก้าว

แผนการสนทนา

ก้าว/นาที

ทุกๆ 1 นาที

ทุกๆ 1 วินาที

23:14-23:15 - 35 spm

23:16 - 23:17 - 37 วินาที

23:17 - 23:18 - 40 วินาที

การทำวีลแชร์พุช

พุช

ทุกๆ 1 นาที

ทุกๆ 1 วินาที

23:14-23:15 - พุช 5 ครั้ง

23:16 - 23:17 - พุช 22 ครั้ง

23:17 - 23:18 - พุช 8 ครั้ง

แผนการปั่นจักรยาน

rpm

ทุกๆ 1 นาที

ทุกๆ 1 วินาที

23:14-23:15 - 65 รอบต่อนาที

23:16 - 23:17 - 70 รอบต่อนาที

23:17 - 23:18 - 68 รอบต่อนาที

พาวเวอร์

วัตต์

ทุกๆ 1 นาที

ทุกๆ 1 วินาที

23:14-23:15 - 250 วัตต์

23:16 - 23:17 - 255 วัตต์

23:17 - 23:18 - 245 วัตต์

ความเร็ว

กม./นาที

ทุกๆ 1 นาที

ทุกๆ 1 วินาที

23:14-23:15 - 0.3 กม./นาที

23:16 - 23:17 - 0.4 กม./นาที

23:17 - 23:18 -0.4 กม./นาที

ระยะทาง

กม./ม.

ทุกๆ 1 นาที

ทุกๆ 1 วินาที

23:14-23:15 - 0.008 กม.

23:16 - 23:16 - 0.021 กม.

23:17 - 23:18 - 0.012 กม.

แคลอรี่ที่ใช้ไปในการเคลื่อนไหว

แคลอรี่

ทุกๆ 1 นาที

ทุกๆ 1 วินาที

23:14-23:15 - 20 แคลอรี

23:16 - 23:17 - 20 แคลอรี

23:17 - 23:18 - 25 แคลอรี

แคลอรี่ที่เผาผลาญทั้งหมด

แคลอรี่

ทุกๆ 1 นาที

ทุกๆ 1 วินาที

23:14-23:15 - 36 แคลอรี

23:16 - 23:17 - 36 แคลอรี

23:17 - 23:18 - 41 แคลอรี

ระดับความสูงที่เพิ่มขึ้น

m

ทุกๆ 1 นาที

ทุกๆ 1 วินาที

20:36 - 20:37 - 3.048 นาที

20:39 - 20:40 - 3.048 น.

23:23 - 23:24 - 9.144 นาที

เส้นทางการออกกำลังกาย

ละติจูด/ลองจิจูด/ละติจูด

ทุกๆ 3-5 วินาที

ทุกๆ 1 วินาที

อัตราการเต้นของหัวใจ

bpm

ทุกๆ 1 นาที

ทุกๆ 1 วินาที

23:14-23:15 - 150 ครั้งต่อนาที

23:16 - 23:17 -152 ครั้งต่อนาที

23:17 - 23:18 - 155 ครั้งต่อนาที

ติดตามข้อมูลระหว่างนอนหลับ

ประเภทข้อมูล

หน่วย

ตัวอย่างที่คาดไว้

ตัวอย่าง

ช่วงการนอนหลับ

สถานะ

ระยะเวลาโดยละเอียดต่อระยะการนอนหลับ

23:46 - 23:50 - ตื่น

23:50 - 23:56 - หลับตื้น

23:56 - 00:16 - หลับลึก

อัตราการเต้นของหัวใจขณะพัก

bpm

มูลค่ารายวันเดียว (ควรเป็นสิ่งแรกในตอนเช้า)

6:11 น. - 60 ครั้งต่อนาที

ความอิ่มตัวของออกซิเจน

%

มูลค่ารายวันเดียว (ควรเป็นสิ่งแรกในตอนเช้า)

6:11 - 95.208%