API ของแพลตฟอร์มสุขภาพ

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

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

ชุดเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ Health Platform API มอบทุกสิ่งที่นักพัฒนาแอป Android ต้องการเพื่อมอบสิทธิ์เข้าถึงข้อมูลสุขภาพและความแข็งแรงสมบูรณ์ของผู้ใช้บนอุปกรณ์ Samsung บางรุ่น และช่วยให้แอปดำเนินการแบบเป็นกลุ่มได้ เช่น แทรก ลบ และอ่านข้อมูล

เริ่มต้นใช้งาน

สิ่งที่ควรทราบเมื่อใช้แพลตฟอร์มสุขภาพมีดังนี้

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

รูปภาพต่อไปนี้แสดงขั้นตอนการผสานรวมที่จําเป็นซึ่งนักพัฒนาแอปต้องทําตาม

ขั้นตอนการผสานรวม ซึ่งรวมถึงการตั้งค่า SDK, การเข้าถึงและสิทธิ์ รวมถึงการดำเนินการ CRUD
รูปที่ 1 ขั้นตอนการผสานรวมแพลตฟอร์มสุขภาพ

ไฟล์รุ่น

แพลตฟอร์มสุขภาพรุ่น V1 มีสิ่งต่อไปนี้

  • SDK ของไคลเอ็นต์: รวม SDK นี้ไว้ในแอปพลิเคชันเพื่อใช้ API ของแพลตฟอร์มสุขภาพ SDK เป็นที่เก็บ Maven ที่คุณรวมไว้ในไฟล์บิลด์ Gradle ของแอปพลิเคชันโดยตรงได้

ติดตั้งแพลตฟอร์มสุขภาพ

ติดตั้งแพลตฟอร์มสุขภาพโดยทำตามขั้นตอนต่อไปนี้

ในไฟล์ build.gradle รูทของแอป ให้เพิ่มที่เก็บตามที่แสดงในตัวอย่างต่อไปนี้

allprojects {
    . . .
    repositories {
        . . .
        google()
    }
}

เพิ่มการพึ่งพา Health Platform SDK ในไฟล์ build.gradle ของโมดูล ดังที่แสดงในตัวอย่างต่อไปนี้

Kotlin

dependencies { . implementation("com.google.android.libraries.healthdata:health-data-api:1.0.0-alpha01") }

Groovy

dependencies { . implementation 'com.google.android.libraries.healthdata:health-data-api:1.0.0-alpha01' }

ข้อมูล

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

ต่อไปนี้เป็นภาพรวมของออบเจ็กต์ส่วนกลางในแพลตฟอร์มสุขภาพและความแตกต่าง

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

คลาส RawData ทั้ง 3 คลาสจะสอดคล้องกับคลาสย่อยที่เฉพาะเจาะจงของ DataType โดย SampleData, IntervalData และ SeriesData จะสอดคล้องกับ SampleDataType, IntervalDataType และ SeriesDataType ตามลำดับ

เมื่อแทรกออบเจ็กต์ RawData แต่ละรายการ Health Platform จะกำหนดตัวระบุที่ไม่ซ้ำกัน (UID) ให้กับออบเจ็กต์นั้น คุณสามารถใช้ UID นี้เพื่ออ้างอิงRawData ออบเจ็กต์ที่เฉพาะเจาะจงในคำขออ่าน อัปเดต หรือลบ

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

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

ประเภทข้อมูลแต่ละประเภทจะกำหนดโดยรูปแบบข้อมูล ซึ่งได้แก่

  • ช่อง: ช่องเฉพาะหรือทั่วไปที่เชื่อมโยงกับประเภทข้อมูล เช่น ประเภทข้อมูลความอิ่มตัวของออกซิเจนในเลือด (SpO2) มีช่องต่างๆ เช่น ชื่อ หมายเหตุ และเปอร์เซ็นต์
  • ประเภท: long, double, string หรือ enum
  • แอตทริบิวต์: โปรดระบุค่าที่อ่านอย่างเดียว ต้องระบุ ไม่บังคับ หรือช่วงการตรวจสอบ

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

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

SampleData ประเภท

DataType.BasalMetabolicRateDataType BASAL_METABOLIC_RATE ต้องระบุ
DataType.BloodGlucoseDataType BLOOD_GLUCOSE ต้องระบุและไม่บังคับ
DataType.BloodPressureDataType BLOOD_PRESSURE ต้องระบุและไม่บังคับ
DataType.BodyFatDataType BODY_FAT ต้องระบุ
DataType.BodyTemperatureDataType BODY_TEMPERATURE ต้องระบุและไม่บังคับ
DataType.BoneMassDataType BONE_MASS ต้องระบุ
DataType.CervicalMucusDataType CERVICAL_MUCUS ไม่บังคับ
DataType.CervicalPositionDataType CERVICAL_POSITION ไม่บังคับ
DataType.CyclingPedalingCadenceDataType CYCLING_PEDALING_CADENCE ต้องระบุ
DataType.DateOfBirthDataType DATE_OF_BIRTH อ่านอย่างเดียว
DataType.GenderDataType GENDER อ่านอย่างเดียว
DataType.HeartRateDataType HEART_RATE ต้องระบุ
DataType.HeightDataType HEIGHT ต้องระบุ
DataType.HipCircumferenceDataType HIP_CIRCUMFERENCE ต้องระบุ
DataType.HrvDifferentialIndexDataType HRV_DIFFERENTIAL_INDEX ต้องระบุ
DataType.HrvRmssdDataType HRV_RMSSD ต้องระบุ
DataType.HrvSDataType HRV_S ต้องระบุ
DataType.HrvSd2DataType HRV_SD2 ต้องระบุ
DataType.HrvSdannDataType HRV_SDANN ต้องระบุ
DataType.HrvSdnnDataType HRV_SDNN ต้องระบุ
DataType.HrvSdnnIndexDataType HRV_SDNN_INDEX ต้องระบุ
DataType.HrvSdnnIndexDataType HRV_SDNN_INDEX ต้องระบุ
DataType.HrvSdsdDataType HRV_SDSD ต้องระบุ
DataType.HrvTinnDataType HRV_TINN ต้องระบุ
DataType.LeanBodyMassDataType LEAN_BODY_MASS ต้องระบุ
DataType.LocationDataType LOCATION ต้องระบุ
DataType.MenstruationDataType MENSTRUATION ไม่บังคับ
DataType.OvulationTestDataType OVULATION_TEST ต้องระบุ
DataType.OxygenSaturationDataType OXYGEN_SATURATION ต้องระบุ
DataType.PaceDataType PACE ต้องระบุ
DataType.PowerDataType POWER ต้องระบุ
DataType.RespiratoryRateDataType RESPIRATORY_RATE ต้องระบุ
DataType.RestingHeartRateDataType RESTING_HEART_RATE ต้องระบุ
DataType.SexualActivityDataType SEXUAL_ACTIVITY ต้องระบุ
DataType.SpeedDataType SPEED ต้องระบุ
DataType.StepsCadenceDataType STEPS_CADENCE ต้องระบุ
DataType.Vo2MaxDataType VO2_MAX ต้องระบุและไม่บังคับ
DataType.WaistCircumferenceDataType WAIST_CIRCUMFERENCE ต้องระบุ
DataType.WeightDataType WEIGHT ต้องระบุ

IntervalData ประเภท

DataType.ActiveEnergyDataType ACTIVE_ENERGY_BURNED ต้องระบุ
DataType.ActiveTimeDataType ACTIVE_TIME อ่านอย่างเดียว
DataType.ActivityEventDataType ACTIVITY_EVENT ต้องระบุ
DataType.ActivityLapDataType ACTIVITY_LAP ไม่บังคับ
DataType.ActivitySessionDataType ACTIVITY_SESSION ต้องระบุ
DataType.BasalEnergyDataType BASAL_ENERGY_BURNED อ่านอย่างเดียว
DataType.DistanceDataType DISTANCE ต้องระบุ
DataType.ElevationGainedDataType ELEVATION_GAINED ต้องระบุ
DataType.FloorsClimbedDataType FLOORS_CLIMBED ต้องระบุ
DataType.HydrationDataType HYDRATION ต้องระบุ
DataType.NutritionDataType NUTRITION ไม่บังคับ
DataType.RepetitionsDataType REPETITIONS ต้องระบุ
DataType.SleepSessionDataType SLEEP_SESSION ไม่บังคับ
DataType.SleepStageDataType SLEEP_STAGE ต้องระบุ
DataType.StepsDataType STEPS ต้องระบุ
DataType.SwimmingStrokesDataType SWIMMING_STROKES ต้องระบุและไม่บังคับ
DataType.TotalEnergyDataType TOTAL_ENERGY_BURNED อ่านอย่างเดียว

SeriesData ประเภท

DataType.CyclingPedalingCadenceSeriesDataType CYCLING_PEDALING_CADENCE ต้องระบุ
DataType.HeartRateSeriesDataType HEART_RATE ต้องระบุ
DataType.LocationSeriesDataType LOCATION ต้องระบุ
DataType.PaceSeriesDataType PACE ต้องระบุ
DataType.PowerSeriesDataType POWER ต้องระบุ
DataType.SpeedSeriesDataType SPEED ต้องระบุ
DataType.StepsCadenceSeriesDataType STEPS_CADENCE ต้องระบุ
เพื่อเพิ่มประสิทธิภาพและพื้นที่เก็บข้อมูล

ฟังก์ชันสำหรับนักพัฒนาแอป

ต่อไปนี้อธิบายชุดฟังก์ชันข้อมูลมาตรฐานที่มีให้ใช้งานในแพลตฟอร์ม Health แพลตฟอร์มมีฟังก์ชันแทรก อัปเดต และลบมาตรฐานสําหรับข้อมูลดิบ

อ่าน AggregatedData

แพลตฟอร์มนี้ช่วยให้ไคลเอ็นต์ใช้ฟังก์ชันการรวมข้อมูลกับAggregatedDataประเภทต่อไปนี้ได้

  • StatisticalData: ค่าเฉลี่ย ค่าต่ำสุด หรือค่าสูงสุดในชุด SampleData หรือ SeriesData เช่น อัตราการเต้นของหัวใจต่ำสุดและสูงสุดระหว่างเซสชันกิจกรรม
  • CumulativeData: ผลรวมของค่า IntervalData เช่น ยอดก้าวทั้งหมดภายในช่วงเวลาของวัน
  • CountData: จํานวนRawData ออบเจ็กต์พื้นฐาน เช่น จํานวนเซสชันกิจกรรมในสัปดาห์หนึ่งๆ ระบบจะคํานวณข้อมูลจํานวนสำหรับข้อมูลประเภทตัวอย่าง ช่วงเวลา และอนุกรม

เชื่อมต่อกับ Health Platform API

HealthDataClient คือจุดแรกเข้าของ Health Platform API

ขั้นตอนต่อไปนี้จะอธิบายวิธีเชื่อมต่อกับแพลตฟอร์มสุขภาพ

  1. ใช้ HealthDataService.getClient เพื่อสร้างอินสแตนซ์ HealthDataClient ใหม่
  2. จากนั้นแอปไคลเอ็นต์ต้องขอสิทธิ์จากผู้ใช้โดยใช้เมธอด requestPermissions (Set)

HealthDataClient จะจัดการการเชื่อมต่อกับเลเยอร์พื้นที่เก็บข้อมูลที่เกี่ยวข้องโดยอัตโนมัติ รวมถึงจัดการการสื่อสารระหว่างกระบวนการ (IPC) และการแปลงเป็นอนุกรมของคำขอขาออกและคำตอบขาเข้าทั้งหมด