วางแผนและตรวจสอบประเภทข้อมูล Health Connect

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

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

หมวดหมู่ประเภทข้อมูล

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

  • กิจกรรม: ข้อมูลนี้จะบันทึกกิจกรรมทั้งหมดที่ผู้ใช้ทํา ซึ่งอาจรวมถึงกิจกรรมเพื่อสุขภาพและความแข็งแรงสมบูรณ์ เช่น การวิ่งและการว่ายน้ำ
  • การวัดร่างกาย: ข้อมูลทั่วไปที่เกี่ยวข้องกับร่างกาย เช่น น้ำหนักของผู้ใช้และอัตราการเผาผลาญพื้นฐาน
  • การติดตามรอบเดือน: ฟีเจอร์นี้จะบันทึกรอบเดือนและจุดข้อมูลที่เกี่ยวข้อง เช่น ผลลัพธ์แบบ 2 ค่าของการทดสอบการตกไข่
  • โภชนาการ: ข้อมูลประเภทนี้บันทึกปริมาณน้ำที่ดื่มและโภชนาการ ค่าแรกแสดงปริมาณน้ำที่ผู้ใช้ดื่มในเครื่องดื่ม 1 แก้ว ส่วนหลังจะมีฟิลด์ที่ไม่บังคับ เช่น แคลอรี่ น้ำตาล และแม็กนีเซียม
  • การนอนหลับ: ข้อมูลนี้บันทึกข้อมูลเป็นช่วงๆ ที่เกี่ยวข้องกับระยะเวลาและประเภทการนอนหลับของผู้ใช้
  • ข้อมูลสำคัญ: ข้อมูลนี้จะบันทึกข้อมูลสำคัญเกี่ยวกับสุขภาพทั่วไปของผู้ใช้ ซึ่งรวมถึงข้อมูลต่างๆ เช่น อุณหภูมิของร่างกาย น้ำตาลกลูโคสในเลือด ความดันโลหิต และความอิ่มตัวของออกซิเจนในเลือด

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

ประเภทข้อมูลใน Health Connect จะจัดเก็บไว้ในออบเจ็กต์ที่เป็นคลาสย่อยของ Record

ข้อมูลแต่ละประเภทจะมีฟิลด์ที่เชื่อมโยงซึ่งเป็นแบบทั่วไป เช่น time และ zoneOffset หรือเป็นแบบเฉพาะเจาะจง เช่น title, count และ percentage ฟิลด์บางฟิลด์ใช้ประเภทแบบง่าย เช่น long, double หรือสตริง ขณะที่บางฟิลด์ใช้ประเภทที่ซับซ้อน เช่น การแจกแจงและคลาส เช่น Instant และ ZoneOffset แอตทริบิวต์ของช่องเหล่านี้อาจเป็นแบบต้องกรอกหรือไม่ต้องกรอกก็ได้ แอตทริบิวต์บางรายการเป็นแบบอ่านอย่างเดียว และแอตทริบิวต์บางรายการถูกจำกัดให้อยู่ในช่วงค่าที่เฉพาะเจาะจง

ดูรายการประเภทข้อมูลและช่องทั้งหมดที่ใช้ได้ได้จากคลาสใน Jetpack

แอตทริบิวต์ข้อมูลเพิ่มเติม

ข้อมูลใน Health Connect API ยังมีแอตทริบิวต์ข้อมูลเมตาที่อธิบายไว้ในรายการต่อไปนี้ด้วย

  • รหัส Health Connect: ข้อมูลแต่ละจุดจะได้รับการกำหนดตัวระบุที่ไม่ซ้ำกัน (UID) เมื่อสร้าง ซึ่งมีประโยชน์สําหรับการดําเนินการอ่านและเขียนมาตรฐาน ดูรายละเอียดเพิ่มเติมได้ที่รหัส Health Connect
  • เวลาที่แก้ไขล่าสุด: ข้อมูลนี้จะระบุการประทับเวลาที่อินสแตนซ์ล่าสุดของระเบียนได้รับการอัปเดต ระบบจะสร้างรหัสนี้โดยอัตโนมัติเมื่อสร้างระเบียนครั้งแรกหรือทุกครั้งที่มีการอัปเดต
  • แหล่งที่มาของข้อมูล: Health Connect จะจัดเก็บข้อมูลเกี่ยวกับแอปที่เป็นแหล่งที่มาของข้อมูล ซึ่งมีชื่อแพ็กเกจของต้นทางนั้น ซึ่งระบบจะเพิ่มโดยอัตโนมัติเมื่อสร้าง
  • อุปกรณ์: Health Connect จะจัดเก็บข้อมูลเกี่ยวกับอุปกรณ์ที่เป็นแหล่งที่มาของข้อมูล ข้อมูลนี้ประกอบด้วยผู้ผลิตและรุ่นของอุปกรณ์ ซึ่งคุณจะต้องระบุค่าด้วยตนเอง
  • รหัสไคลเอ็นต์: Health Connect มีรหัสไคลเอ็นต์เพื่อให้แอปไคลเอ็นต์อ้างอิงข้อมูลโดยใช้รหัสของตนเอง ซึ่งช่วยในการแก้ไขข้อขัดแย้งและทำให้ซิงค์ได้ง่ายขึ้น ซึ่งต้องระบุลงในระเบียนด้วยตนเอง
  • เวอร์ชันระเบียนลูกค้า: นอกจากรหัสลูกค้าแล้ว Health Connect ยังมีการกำหนดเวอร์ชันเพื่อช่วยติดตามการเปลี่ยนแปลงระหว่างการซิงค์ข้อมูล ข้อมูลนี้จะต้องป้อนลงในระเบียนด้วยตนเอง
  • วิธีการบันทึก: Health Connect ช่วยให้คุณเข้าใจวิธีการบันทึกข้อมูล ซึ่งรวมถึงแอปที่บันทึกข้อมูลแบบพาสซีฟ (โดยอัตโนมัติ) และผู้ใช้ที่บันทึกข้อมูลแบบแอ็กทีฟหรือด้วยตนเอง

รหัส Health Connect

Health Connect จะกำหนดตัวระบุที่ไม่ซ้ำกัน (UID) ให้กับออบเจ็กต์ข้อมูลที่แทรกใหม่ ซึ่งจะระบุออบเจ็กต์ข้อมูลและแยกความแตกต่างจากออบเจ็กต์อื่นๆ รหัส Health Connect มีประโยชน์ในคำขออ่านหรือเขียน รหัส Health Connect ไม่เหมือนกับรหัสไคลเอ็นต์ แอปไคลเอ็นต์จะกำหนดรหัสไคลเอ็นต์ ส่วน Health Connect จะกำหนดรหัส Health Connect เท่านั้น

โปรดคำนึงถึงหมายเหตุต่อไปนี้เมื่อใช้รหัส Health Connect

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

เวลาใน Health Connect

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

ในบางกรณีที่เกิดขึ้นไม่บ่อยนัก ระบบอาจไม่มีเวลาออฟเซ็ตของเขต เมื่อเกิดกรณีนี้ขึ้นใน Android 14 (API ระดับ 34) ทาง Health Connect จะตั้งค่าเขตเวลาออฟเซ็ตตามเขตเวลาเริ่มต้นของระบบของอุปกรณ์ ใน Android 13 และเวอร์ชันที่ต่ำกว่า (API ระดับ 33 และต่ำกว่า) คุณสามารถเขียนลงใน Health Connect โดยไม่ต้องระบุข้อมูลการเลื่อนเขตเวลาได้ แต่ควรหลีกเลี่ยงหากเป็นไปได้

การตั้งค่าเวลาและเขตเวลา

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

สิทธิ์

แอปต้องประกาศสิทธิ์ในไฟล์ Manifest ก่อนขอสิทธิ์ใดๆ ดูการแมปประเภทข้อมูลและสิทธิ์ทั้งหมดได้ในตารางต่อไปนี้

สำหรับ 1.0.0-alpha10 ขึ้นไป

ข้อมูลอ้างอิงเกี่ยวกับสิทธิ์ การประกาศสิทธิ์การอ่าน
การอ่านในเบื้องหลัง android.permission.health.READ_HEALTH_DATA_IN_BACKGROUND
การอ่านประวัติ android.permission.health.READ_HEALTH_DATA_HISTORY

ประเภทคลาสระเบียน การประกาศสิทธิ์อ่านและเขียน
ActiveCaloriesBurned android.permission.health.READ_ACTIVE_CALORIES_BURNED
android.permission.health.WRITE_ACTIVE_CALORIES_BURNED
BasalMetabolicRate android.permission.health.READ_BASAL_METABOLIC_RATE
android.permission.health.WRITE_BASAL_METABOLIC_RATE
BloodPressure android.permission.health.READ_BLOOD_PRESSURE
android.permission.health.WRITE_BLOOD_PRESSURE
CyclingPedalingCadence android.permission.health.READ_CYCLING_PEDALING_CADENCE
android.permission.health.WRITE_CYCLING_PEDALING_CADENCE
ระยะทาง android.permission.health.READ_DISTANCE
android.permission.health.WRITE_DISTANCE
ElevationGained android.permission.health.READ_ELEVATION_GAINED
android.permission.health.WRITE_ELEVATION_GAINED
ExerciseSession android.permission.health.READ_EXERCISE_ROUTE
android.permission.health.READ_EXERCISE_SESSION
android.permission.health.WRITE_EXERCISE_ROUTE
android.permission.health.WRITE_EXERCISE_SESSION
FloorsClimbed android.permission.health.READ_FLOORS_CLIMBED
android.permission.health.WRITE_FLOORS_CLIMBED
HeartRate android.permission.health.READ_HEART_RATE
android.permission.health.WRITE_HEART_RATE
ความสูง android.permission.health.READ_HEIGHT
android.permission.health.WRITE_HEIGHT
การดื่มน้ำ android.permission.health.READ_HYDRATION
android.permission.health.WRITE_HYDRATION
MindfulnessSession android.permission.health.READ_MINDFULNESS
android.permission.health.WRITE_MINDFULNESS
โภชนาการ android.permission.health.READ_NUTRITION
android.permission.health.WRITE_NUTRITION
อำนาจ android.permission.health.READ_POWER
android.permission.health.WRITE_POWER
RestingHeartRate android.permission.health.READ_RESTING_HEART_RATE
android.permission.health.WRITE_RESTING_HEART_RATE
SkinTemperature android.permission.health.READ_SKIN_TEMPERATURE
android.permission.health.WRITE_SKIN_TEMPERATURE
SleepSession android.permission.health.READ_SLEEP_SESSION
android.permission.health.WRITE_SLEEP_SESSION
ความเร็ว android.permission.health.READ_SPEED
android.permission.health.WRITE_SPEED
ขั้นตอน android.permission.health.READ_STEPS
android.permission.health.WRITE_STEPS
StepsCadence android.permission.health.READ_STEPS_CADENCE
android.permission.health.WRITE_STEPS_CADENCE
TotalCaloriesBurned android.permission.health.READ_TOTAL_CALORIES_BURNED
android.permission.health.WRITE_TOTAL_CALORIES_BURNED
น้ำหนัก android.permission.health.READ_WEIGHT
android.permission.health.WRITE_WEIGHT
WheelchairPushes android.permission.health.READ_WHEELCHAIR_PUSHES
android.permission.health.WRITE_WHEELCHAIR_PUSHES

สำหรับ 1.0.0-alpha09 และต่ำกว่า

ประเภทคลาสระเบียน การประกาศสิทธิ์อ่านและเขียน
ActiveCaloriesBurned androidx.health.permission.ActiveCaloriesBurned.READ
androidx.health.permission.ActiveCaloriesBurned.WRITE
BasalMetabolicRate androidx.health.permission.BasalMetabolicRate.READ
androidx.health.permission.BasalMetabolicRate.WRITE
BloodPressure androidx.health.permission.BloodPressure.READ
androidx.health.permission.BloodPressure.WRITE
CyclingPedalingCadence androidx.health.permission.CyclingPedalingCadence.READ
androidx.health.permission.CyclingPedalingCadence.WRITE
ระยะทาง androidx.health.permission.Distance.READ
androidx.health.permission.Distance.WRITE
ElevationGained androidx.health.permission.ElevationGained.READ
androidx.health.permission.ElevationGained.WRITE
ExerciseSession androidx.health.permission.ExerciseSession.READ
androidx.health.permission.ExerciseSession.WRITE
FloorsClimbed androidx.health.permission.FloorsClimbed.READ
androidx.health.permission.FloorsClimbed.WRITE
HeartRate androidx.health.permission.HeartRate.READ
androidx.health.permission.HeartRate.WRITE
ความสูง androidx.health.permission.Height.READ
androidx.health.permission.Height.WRITE
การดื่มน้ำ androidx.health.permission.Hydration.READ
androidx.health.permission.Hydration.WRITE
โภชนาการ androidx.health.permission.Nutrition.READ
androidx.health.permission.Nutrition.WRITE
อำนาจ androidx.health.permission.Power.READ
androidx.health.permission.Power.WRITE
RestingHeartRate androidx.health.permission.RestingHeartRate.READ
androidx.health.permission.RestingHeartRate.WRITE
SleepSession androidx.health.permission.SleepSession.READ
androidx.health.permission.SleepSession.WRITE
ความเร็ว androidx.health.permission.Speed.READ
androidx.health.permission.Speed.WRITE
ขั้นตอน androidx.health.permission.Steps.READ
androidx.health.permission.Steps.WRITE
StepsCadence androidx.health.permission.StepsCadence.READ
androidx.health.permission.StepsCadence.WRITE
TotalCaloriesBurned androidx.health.permission.TotalCaloriesBurned.READ
androidx.health.permission.TotalCaloriesBurned.WRITE
น้ำหนัก androidx.health.permission.Weight.READ
androidx.health.permission.Weight.WRITE
WheelchairPushes androidx.health.permission.WheelchairPushes.READ
androidx.health.permission.WheelchairPushes.WRITE

ตรวจสอบประเภทข้อมูลและสิทธิ์

เมื่อวางแผนประเภทข้อมูลและสิทธิ์แล้ว คุณจะใช้ข้อมูลดังกล่าวได้ในระหว่างการพัฒนา

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

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