คำแนะนำนี้ใช้ได้กับ Health Connect เวอร์ชัน 1.1.0-alpha12
คู่มือนี้จะอธิบายกระบวนการเขียนหรืออัปเดตข้อมูลใน Health Connect
ตั้งค่าโครงสร้างข้อมูล
ก่อนเขียนข้อมูล เราต้องตั้งค่าระเบียนก่อน ข้อมูลแต่ละประเภทมีโครงสร้างที่แตกต่างกันไป โดยมีมากกว่า 50 ประเภท ดูรายละเอียดเพิ่มเติมเกี่ยวกับประเภทข้อมูลที่มีได้ในข้อมูลอ้างอิงเกี่ยวกับ Jetpack
ระเบียนพื้นฐาน
ประเภทข้อมูลจำนวนก้าวใน Health Connect จะบันทึกจำนวนก้าวที่ผู้ใช้เดินระหว่างการอ่าน จํานวนก้าวแสดงการวัดผลทั่วไปในแพลตฟอร์มสุขภาพ การออกกำลังกาย และความแข็งแรงสมบูรณ์
ตัวอย่างต่อไปนี้แสดงวิธีตั้งค่าข้อมูลจํานวนก้าว
val endTime = Instant.now()
val startTime = endTime.minus(Duration.ofMinutes(15))
val stepsRecord = StepsRecord(
count = 120,
startTime = startTime,
endTime = endTime,
startZoneOffset = ZoneOffset.UTC,
endZoneOffset = ZoneOffset.UTC,
metadata = Metadata.autoRecorded(
device = Device(type = Device.TYPE_WATCH)
)
)
ระเบียนที่มีหน่วยวัด
Health Connect สามารถจัดเก็บค่าพร้อมกับหน่วยวัดเพื่อให้เกิดความแม่นยำ ตัวอย่างหนึ่งคือประเภทข้อมูลโภชนาการที่มีมากมายและครอบคลุม ข้อมูลนี้ประกอบด้วยช่องสารอาหารที่ไม่บังคับที่หลากหลาย ตั้งแต่คาร์โบไฮเดรตทั้งหมดไปจนถึงวิตามิน แต่ละจุดข้อมูลแสดงถึงสารอาหารที่มีแนวโน้มว่าจะได้รับจากการบริโภคอาหารหรืออาหารหนึ่งๆ
ในประเภทข้อมูลนี้ สารอาหารทั้งหมดจะแสดงในหน่วย Mass
ส่วน energy
จะแสดงในหน่วย Energy
ตัวอย่างต่อไปนี้แสดงวิธีตั้งค่าข้อมูลโภชนาการสำหรับผู้ใช้ที่กินกล้วย
val endTime = Instant.now()
val startTime = endTime.minus(Duration.ofMinutes(1))
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 = startTime,
endTime = endTime,
startZoneOffset = ZoneOffset.UTC,
endZoneOffset = ZoneOffset.UTC,
metadata = Metadata.manualEntry(
device = Device(type = Device.TYPE_PHONE)
)
)
ระเบียนที่มีข้อมูลชุด
Health Connect สามารถจัดเก็บรายการข้อมูลชุด ตัวอย่างหนึ่งคือประเภทข้อมูลอัตราการเต้นของหัวใจที่บันทึกชุดตัวอย่างการเต้นของหัวใจที่ตรวจพบระหว่างการอ่านค่า
ในประเภทข้อมูลนี้ พารามิเตอร์ samples
จะแสดงด้วยรายการตัวอย่างอัตราการเต้นของหัวใจ ตัวอย่างแต่ละรายการมีค่า beatsPerMinute
และค่า time
ตัวอย่างต่อไปนี้แสดงวิธีตั้งค่าข้อมูลชุดอัตราการเต้นของหัวใจ
val endTime = Instant.now()
val startTime = endTime.minus(Duration.ofMinutes(5))
val heartRateRecord = HeartRateRecord(
startTime = startTime,
startZoneOffset = ZoneOffset.UTC,
endTime = endTime,
endZoneOffset = ZoneOffset.UTC,
// records 10 arbitrary data, to replace with actual data
samples = List(10) { index ->
HeartRateRecord.Sample(
time = startTime + Duration.ofSeconds(index.toLong()),
beatsPerMinute = 100 + index.toLong(),
)
},
metadata = Metadata.autoRecorded(
device = Device(type = Device.TYPE_WATCH)
))
เขียนข้อมูล
เวิร์กโฟลว์ทั่วไปอย่างหนึ่งใน Health Connect คือการเขียนข้อมูล หากต้องการเพิ่มระเบียน ให้ใช้ insertRecords
ตัวอย่างต่อไปนี้แสดงวิธีเขียนจํานวนขั้นตอนในการแทรกข้อมูล
suspend fun insertSteps(healthConnectClient: HealthConnectClient) {
val endTime = Instant.now()
val startTime = endTime.minus(Duration.ofMinutes(5))
try {
val stepsRecord = StepsRecord(
count = 120,
startTime = startTime,
endTime = endTime,
startZoneOffset = ZoneOffset.UTC,
endZoneOffset = ZoneOffset.UTC,
metadata = Metadata.autoRecorded(
device = Device(type = Device.TYPE_WATCH)
)
)
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 แต่ละรายการจะมีรหัสที่ไม่ซ้ำกันซึ่งเชื่อมโยงกับRecord นั้นเพื่อใช้เป็นข้อมูลอ้างอิงในที่เก็บข้อมูลแอป
แอปของคุณระบุค่านี้ |
clientRecordVersion
|
เมื่อระเบียนมี clientRecordId คุณจะใช้ clientRecordVersion เพื่ออนุญาตให้ข้อมูลซิงค์กับเวอร์ชันที่อยู่ใน App Datastore ได้แอปของคุณระบุค่านี้ |
อัปเดตผ่านรหัสระเบียน
หากต้องการอัปเดตข้อมูล ให้เตรียมระเบียนที่จำเป็นก่อน ทำการเปลี่ยนแปลงระเบียนหากจำเป็น จากนั้นโทรหา 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)
}
healthConnectClient.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(
metadata = Metadata.autoRecorded(
clientRecordId = "Your client record ID",
device = Device(type = Device.TYPE_WATCH)
),
// Assign more parameters for this record
)
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())
การตรวจสอบค่าในเวอร์ชันระเบียนลูกค้า
หากกระบวนการอัปโหลดข้อมูลของคุณมีเวอร์ชันระเบียนลูกค้า Health Connect จะดำเนินการตรวจสอบการเปรียบเทียบในค่า clientRecordVersion
หากเวอร์ชันจากข้อมูลที่แทรกสูงกว่าเวอร์ชันจากข้อมูลที่มีอยู่ ระบบจะทำการอัปsert ไม่เช่นนั้น กระบวนการจะละเว้นการเปลี่ยนแปลงและค่าจะยังคงเหมือนเดิม
หากต้องการรวมเวอร์ชันไว้ในข้อมูล คุณต้องระบุค่า Metadata.clientRecordVersion
ด้วยค่า Long
โดยอิงตามตรรกะเวอร์ชัน
val endTime = Instant.now()
val startTime = endTime.minus(Duration.ofMinutes(15))
val stepsRecord = StepsRecord(
count = 100L,
startTime = startTime,
startZoneOffset = ZoneOffset.UTC,
endTime = endTime,
endZoneOffset = ZoneOffset.UTC,
metadata = Metadata.manualEntry(
clientRecordId = "Your supplied record ID",
clientRecordVersion = 0L, // Your supplied record version
device = Device(type = Device.TYPE_WATCH)
)
)
การอัปsert จะไม่เพิ่ม version
โดยอัตโนมัติทุกครั้งที่มีการเปลี่ยนแปลง เพื่อป้องกันการเขียนทับข้อมูลโดยไม่คาดคิด ในกรณีนี้ คุณต้องป้อนค่าที่สูงขึ้นด้วยตนเอง
แนวทางปฏิบัติแนะนำในการเขียนข้อมูล
แอปต้องเขียนเฉพาะข้อมูลที่มาจากแหล่งที่มาของตนเองลงใน Health Connect
หากข้อมูลในแอปของคุณนำเข้ามาจากแอปอื่น แอปดังกล่าวจะมีหน้าที่เขียนข้อมูลของตัวเองลงใน Health Connect
นอกจากนี้ คุณควรใช้ตรรกะที่จัดการข้อยกเว้นการเขียน เช่น ข้อมูลอยู่นอกขอบเขต หรือข้อผิดพลาดของระบบภายใน คุณใช้กลยุทธ์การถดถอยและลองอีกครั้งในกลไกการกําหนดเวลาการทํางานได้ หากการเขียนข้อมูลลงใน 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 ด้วยวิธีใดวิธีหนึ่งต่อไปนี้
- ซิงค์ข้อมูลลงใน Health Connect หลังจากกิจกรรมเสร็จสมบูรณ์ เช่น ซิงค์ข้อมูลเมื่อผู้ใช้สิ้นสุดเซสชันการออกกําลังกายที่ติดตาม
- กำหนดเวลางานแบบครั้งเดียวโดยใช้
WorkManager
เพื่อซิงค์ข้อมูลในภายหลัง
แนวทางปฏิบัติแนะนำสำหรับความละเอียดและความถี่ในการเขียน
เมื่อเขียนข้อมูลลงใน Health Connect ให้ใช้ความละเอียดที่เหมาะสม การใช้ความละเอียดที่เหมาะสมจะช่วยลดความจุของพื้นที่เก็บข้อมูลได้ ในขณะที่ยังคงรักษาข้อมูลที่ถูกต้องและสอดคล้องกัน การแก้ไขข้อมูลประกอบด้วย 2 ส่วน ได้แก่
- ความถี่ในการเขียน: ความถี่ที่แอปพลิเคชันของคุณพุชข้อมูลใหม่ไปยัง Health Connect เช่น เขียนข้อมูลใหม่ทุก 15 นาที
- ความละเอียดของข้อมูลที่เขียน: ความถี่ในการสุ่มตัวอย่างข้อมูลที่พุชเข้ามา เช่น เขียนตัวอย่างอัตราการเต้นของหัวใจทุก 5 วินาที ข้อมูลบางประเภทไม่จำเป็นต้องใช้อัตราตัวอย่างเดียวกัน การอัปเดตข้อมูลจํานวนก้าวทุกวินาทีมีประโยชน์เพียงเล็กน้อย เมื่อเทียบกับการอัปเดตเป็นช่วงๆ ห่างกัน เช่น ทุก 60 วินาที อย่างไรก็ตาม อัตราการสุ่มตัวอย่างที่สูงขึ้นอาจช่วยให้ผู้ใช้เห็นข้อมูลสุขภาพและการออกกำลังกายที่ละเอียดยิ่งขึ้น ความถี่ของอัตราตัวอย่างควรมีความสมดุลระหว่างรายละเอียดและประสิทธิภาพ
เขียนข้อมูลที่ตรวจสอบตลอดทั้งวัน
สําหรับข้อมูลที่รวบรวมอย่างต่อเนื่อง เช่น จํานวนก้าว แอปพลิเคชันของคุณควรเขียนลงใน Health Connect ทุก 15 นาทีตลอดทั้งวันเป็นอย่างน้อย
ประเภทข้อมูล |
หน่วย |
วันที่นำส่งโดยประมาณ |
ตัวอย่าง |
จำนวนก้าว |
จำนวนก้าว |
ทุกๆ 1 นาที |
23:14 - 23:15 - 5 ขั้นตอน 23:16 - 23:17 - 22 ก้าว 23:17 - 23:18 - 8 ขั้นตอน |
StepsCadence |
ก้าว/นาที |
ทุกๆ 1 นาที |
23:14 - 23:15 - 5 spm 23:16 - 23:17 - 22 spm 23:17 - 23:18 - 8 spm |
การทำวีลแชร์พุช |
พุช |
ทุกๆ 1 นาที |
23:14 - 23:15 - การพุช 5 ครั้ง 23:16 - 23:17 - 22 การพุช 23:17 - 23:18 - การพุช 8 ครั้ง |
ActiveCaloriesBurned |
แคลอรี่ |
ทุก 15 นาที |
23:15 - 23:30 - 2 แคลอรี่ 23:30 - 23:45 - 25 แคลอรี่ 23:45 - 00:00 - 5 แคลอรี่ |
TotalCaloriesBurned |
แคลอรี่ |
ทุก 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 กม. |
ElevationGained |
m |
ทุกๆ 1 นาที |
20:36 - 20:37 - 3.048m 20:39 - 20:40 - 3.048m 23:23 - 23:24 - 9.144m |
จำนวนชั้นที่เดินขึ้น |
ชั้น |
ทุกๆ 1 นาที |
23:14 - 23:15 - 5 ชั้น 23:16 - 23:16 - 22 ชั้น 23:17 - 23:18 - 8 ชั้น |
HeartRate |
bpm |
ทุกๆ 1 นาที |
06:11 น. - 55 bpm |
HeartRateVariabilityRmssd |
มิลลิวินาที |
ทุกๆ 1 นาที |
06:11 น. - 23 มิลลิวินาที |
RespiratoryRate |
ครั้ง/นาที |
ทุกๆ 1 นาที |
23:14 - 23:15 - 60 ครั้ง/นาที 23:16 - 23:16 - 62 ครั้ง/นาที 23:17 - 23:18 - 64 ครั้ง/นาที |
OxygenSaturation |
% |
ทุกๆ 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 ขั้นตอน |
StepsCadence |
ก้าว/นาที |
ทุกๆ 1 นาที |
ทุกๆ 1 วินาที |
23:14-23:15 - 35 spm 23:16 - 23:17 - 37 spm 23:17 - 23:18 - 40 spm |
การทำวีลแชร์พุช |
พุช |
ทุกๆ 1 นาที |
ทุกๆ 1 วินาที |
23:14-23:15 - การพุช 5 ครั้ง 23:16 - 23:17 - 22 การพุช 23:17 - 23:18 - การพุช 8 ครั้ง |
CyclingPedalingCadence |
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 กม. |
ActiveCaloriesBurned |
แคลอรี่ |
ทุกๆ 1 นาที |
ทุกๆ 1 วินาที |
23:14-23:15 - 20 แคลอรี่ 23:16 - 23:17 - 20 แคลอรี่ 23:17 - 23:18 - 25 แคลอรี่ |
TotalCaloriesBurned |
แคลอรี่ |
ทุกๆ 1 นาที |
ทุกๆ 1 วินาที |
23:14-23:15 - 36 แคลอรี่ 23:16 - 23:17 - 36 แคลอรี่ 23:17 - 23:18 - 41 แคลอรี่ |
ElevationGained |
m |
ทุกๆ 1 นาที |
ทุกๆ 1 วินาที |
20:36 - 20:37 - 3.048m 20:39 - 20:40 - 3.048m 23:23 - 23:24 - 9.144m |
ExerciseRoutes |
lat/lng/alt |
ทุก 3-5 วินาที |
ทุกๆ 1 วินาที |
|
HeartRate |
bpm |
ทุกๆ 1 นาที |
ทุกๆ 1 วินาที |
23:14-23:15 - 150 bpm 23:16 - 23:17 -152 bpm 23:17 - 23:18 - 155 bpm |
ข้อมูลที่ติดตามระหว่างการนอนหลับ
ประเภทข้อมูล |
หน่วย |
ตัวอย่างที่คาดไว้ |
ตัวอย่าง |
ระยะการนอนหลับ |
ระยะ |
ระยะเวลาแบบละเอียดตามระยะการนอนหลับ |
23:46 - 23:50 - ตื่น 23:50 - 23:56 - หลับตื้น 23:56 - 00:16 - หลับลึก |
RestingHeartRate |
bpm |
ค่ารายวันเดี่ยว (ควรเป็นค่าแรกสุดในตอนเช้า) |
06:11 น. - 60 bpm |
OxygenSaturation |
% |
ค่ารายวันเดี่ยว (ควรเป็นค่าแรกสุดในตอนเช้า) |
6:11 - 95.208% |