การอนุญาตข้อมูลสุขภาพคือกระบวนการขอความยินยอมอย่างชัดแจ้งจากผู้ใช้ในการอ่านและเขียนข้อมูลทางการแพทย์และฟิตเนสผ่าน API ของระบบบนแพลตฟอร์มมือถือ บน iOS การอนุญาตดำเนินการผ่าน HealthKit ด้วยคลาส HKHealthStore และ HKObjectType ส่วนบน Android ใช้ Google Fit API กับ OAuth 2.0 และ FitnessOptions ตามข้อมูลจาก Apple HealthKit Documentation, 2025 ข้อมูลสุขภาพถูกจัดเป็นประเภทข้อมูลที่ละเอียดอ่อนเป็นพิเศษ ความแม่นยำทางการแพทย์และการปฏิบัติตามกฎระเบียบเป็นข้อกำหนดสำคัญเมื่อทำงานกับข้อมูลดังกล่าว
สาระสำคัญ
การอนุญาตข้อมูลสุขภาพเป็นกลไกที่ต้องการความยินยอมอย่างชัดแจ้งและมีการบันทึกจากผู้ใช้ก่อนเข้าถึงค่าทางการแพทย์และฟิตเนสของเขา แตกต่างจากการอนุญาตมาตรฐาน (รายชื่อผู้ติดต่อ ปฏิทิน) ข้อมูลสุขภาพอยู่ภายใต้บรรทัดฐานทางกฎหมายเพิ่มเติม: HIPAA ในสหรัฐอเมริกา GDPR ในยุโรป และ 152-FZ ใน รัสเซีย
บน iOS การอนุญาตข้อมูลสุขภาพดำเนินการผ่าน HealthKit: ผู้ใช้จะเห็นหน้าจอพร้อมรายการประเภทข้อมูลทั้งหมดที่แอปร้องขอ และสามารถเลือกหมวดหมู่เฉพาะเพื่อให้สิทธิ์การเข้าถึงได้ บน Android ใช้ Google Fit API ด้วยการอนุญาตผ่าน OAuth 2.0 ซึ่งแต่ละประเภทข้อมูลจะขอ scope แยกต่างหาก
ตามข้อมูลของ App Annie (2025) แอปสุขภาพและฟิตเนสเป็นหนึ่งในกลุ่มที่เติบโตเร็วที่สุดในตลาดมือถือ โดยมีอัตราการเติบโตต่อปี 28% ขณะที่ 71% ของผู้ใช้ปฏิเสธการเข้าถึงข้อมูลสุขภาพหากแอปไม่ได้ให้คำอธิบายที่ชัดเจนเกี่ยวกับวัตถุประสงค์ในการเก็บรวบรวม
ความแตกต่างหลักของการอนุญาตข้อมูลสุขภาพจากการอนุญาตอื่นคือความสามารถในการให้สิทธิ์เข้าถึงบางส่วน ผู้ใช้สามารถอนุญาตให้อ่านจำนวนก้าว แต่ปฏิเสธการเข้าถึงข้อมูลอัตราการเต้นของหัวใจหรือบันทึกทางการแพทย์
HealthKit คือเฟรมเวิร์กของ Apple ที่เปิดตัวใน iOS 8 ซึ่งให้พื้นที่จัดเก็บข้อมูลสุขภาพแบบรวมศูนย์ แอปไม่สามารถเข้าถึง HealthKit โดยตรง — พวกเขาขออนุญาตผ่าน HKHealthStore และผู้ใช้เป็นผู้ตัดสินใจว่าจะให้ข้อมูลประเภทใด ข้อมูลทั้งหมดถูกเข้ารหัสบนอุปกรณ์และซิงค์ผ่าน iCloud ด้วยการเข้ารหัสแบบ end-to-end
กระบวนการอนุญาตเริ่มต้นด้วยการสร้างอินสแตนซ์ของ HKHealthStore และเรียกเมธอด requestAuthorization(toShare:read:) แอปส่งชุดข้อมูลสองชุด: สำหรับการอ่าน (HKObjectType ที่แอปต้องการอ่าน) และสำหรับการเขียน (HKSampleType ที่แอปต้องการบันทึก) ระบบจะแสดงหน้าจอขอความยินยอมที่ผู้ใช้สามารถเปิดหรือปิดแต่ละประเภทได้
คุณสมบัติที่สำคัญ: HealthKit ไม่แสดงให้นักพัฒนาเห็นว่าผู้ใช้อนุญาตประเภทใดบ้างบนหน้าจอขอความยินยอม หลังจากเรียก requestAuthorization แล้ว จำเป็นต้องตรวจสอบการเข้าถึงแต่ละประเภทแยกกันผ่าน HKHealthStore.authorizationStatus(for:) ตามข้อมูลจาก WWDC Session 11108 (2024) Apple แนะนำให้ตรวจสอบสถานะการอนุญาตก่อนดำเนินการอ่านหรือเขียนทุกครั้ง
HealthKit รองรับประเภทข้อมูลหลายร้อยประเภท แบ่งเป็นหมวดหมู่: ปริมาณ (จำนวนก้าว อัตราการเต้นของหัวใจ แคลอรี่) ลักษณะเฉพาะ (ส่วนสูง น้ำหนัก วันเกิด) บันทึกทางคลินิก (การแพ้วัคซีน ผลการตรวจ) อาการและรอบประจำเดือน แต่ละประเภทแสดงโดยคลาสย่อยของ HKObjectType: HKQuantityType สำหรับข้อมูลเชิงตัวเลขและ HKCategoryType สำหรับข้อมูลเชิงหมวดหมู่
ใน iOS 18 Apple ได้ขยาย HealthKit ให้รองรับข้อมูลจากสถานพยาบาลผ่าน FHIR (Fast Healthcare Interoperability Resources) แอปสามารถขอเข้าถึงบันทึกทางการแพทย์ที่มีโครงสร้างหากผู้ใช้เชื่อมต่อโรงพยาบาลหรือคลินิกของตนกับแอป Health
Google Fit คือแพลตฟอร์มสำหรับข้อมูลฟิตเนสบน Android ที่ใช้การอนุญาตผ่าน OAuth 2.0 แตกต่างจาก HealthKit ตรงที่ Google Fit ไม่ได้ถูกฝังในระบบปฏิบัติการในระดับระบบ — เป็นบริการแยกต่างหากของ Google Play Services ที่ต้องลงทะเบียนผ่าน Google Play Console และสร้างข้อมูลประจำตัว OAuth 2.0
ในการเข้าถึง Google Fit แอปต้องลงทะเบียน OAuth 2.0 client ID ใน Google Cloud Console การอนุญาตจะถูกร้องขอผ่าน GoogleSignInAccount และ GoogleSignIn.requestPermissions() ผู้ใช้จะเห็นหน้าจอขอความยินยอมมาตรฐานของ Google พร้อมรายการ scope ที่ร้องขอ: fitness.activity.read, fitness.body.read, fitness.nutrition.write และอื่น ๆ
Google Fit แยกสิทธิ์การอ่านและการเขียนสำหรับแต่ละประเภทข้อมูล แอปสามารถขอสิทธิ์อ่านจำนวนก้าวโดยไม่ต้องขอสิทธิ์เขียน ตั้งแต่ Google Fit API v2 เป็นต้นไป คำขออนุญาตทั้งหมดต้องมีคำอธิบายวัตถุประสงค์การใช้ข้อมูล มิฉะนั้นคำขอจะถูกปฏิเสธโดยการตรวจสอบของ Google
คลาส FitnessOptions ช่วยให้ระบุเชิงประกาศว่าต้องการเข้าถึงประเภทข้อมูลใดบ้าง สำหรับแต่ละประเภทสามารถกำหนดระดับการเข้าถึง: ACCESS_READ, ACCESS_WRITE หรือทั้งสองอย่าง ชุดสิทธิ์จะถูกส่งไปยัง GoogleSignin.requestPermissions() พร้อมกับบัญชีผู้ใช้
รายการประเภทที่Available ได้แก่ จำนวนก้าว (DataType.TYPE_STEP_COUNT_DELTA) แคลอรี่ (TYPE_CALORIES_EXPENDED) อัตราการเต้นของหัวใจ (TYPE_HEART_RATE_BPM) ระยะทาง (TYPE_DISTANCE_DELTA) กิจกรรม (TYPE_ACTIVITY_SEGMENT) และการนอนหลับ (TYPE_SLEEP_SEGMENT) แต่ละประเภทมีความถี่ในการอัปเดตและข้อกำหนดสิทธิ์ของตัวเอง
การขออนุญาตข้อมูลสุขภาพบน iOS และ Android แตกต่างกันอย่างมาก ด้านล่างนี้คือตัวอย่างการทำงานสำหรับ HealthKit และ Google Fit API
ใน Swift การขออนุญาต HealthKit ดำเนินการผ่าน HKHealthStore โดยระบุประเภทสำหรับการอ่านและการเขียน ตัวอย่างแสดงการขอเข้าถึงข้อมูลจำนวนก้าวและอัตราการเต้นของหัวใจ
import HealthKit
let healthStore = HKHealthStore()
let readTypes: Set<HKObjectType> = [
HKObjectType.quantityType(forIdentifier: .stepCount)!,
HKObjectType.quantityType(forIdentifier: .heartRate)!
]
let writeTypes: Set<HKSampleType> = [
HKObjectType.quantityType(forIdentifier: .stepCount)!
]
guard HKHealthStore.isHealthDataAvailable() else {
fatalError("HealthKit ไม่พร้อมใช้งานบนอุปกรณ์นี้")
}
healthStore.requestAuthorization(toShare: writeTypes, read: readTypes) { success, error in
if success {
// ตรวจสอบสถานะของแต่ละประเภทแยกกัน
let status = healthStore.authorizationStatus(for: readTypes.first!)
print("การอนุญาต HealthKit: \(status.rawValue)")
} else {
print("ข้อผิดพลาดการอนุญาต HealthKit: \(error?.localizedDescription ?? "ไม่ทราบ")")
}
}
บน Android การขออนุญาต Google Fit ดำเนินการผ่าน GoogleSignIn และ FitnessOptions ตัวอย่างแสดงการขอเข้าถึงข้อมูลจำนวนก้าวและแคลอรี่
val fitnessOptions = FitnessOptions.builder()
.addDataType(DataType.TYPE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
.addDataType(DataType.TYPE_CALORIES_EXPENDED, FitnessOptions.ACCESS_READ)
.build()
val account = GoogleSignIn.getAccountForExtension(this, fitnessOptions)
if (!GoogleSignIn.hasPermissions(account, fitnessOptions)) {
GoogleSignIn.requestPermissions(
this,
REQUEST_GOOGLE_FIT,
account,
fitnessOptions
)
} else {
// ได้รับสิทธิ์แล้ว — กำลังอ่านข้อมูล
readGoogleFitData(account)
}
// กำลังประมวลผลผลลัพธ์ของคำขอสิทธิ์
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == REQUEST_GOOGLE_FIT && resultCode == RESULT_OK) {
val account = GoogleSignIn.getSignedInAccountFromIntent(data)
account?.let { readGoogleFitData(it) }
}
}
ข้อมูลสุขภาพจัดอยู่ในหมวดหมู่ข้อมูลส่วนบุคคลที่ละเอียดอ่อนเป็นพิเศษ นักพัฒนาแอปที่ทำงานกับ HealthKit หรือ Google Fit ต้องปฏิบัติตามข้อกำหนดด้านกฎระเบียบที่บังคับใช้ในภูมิภาคของ ผู้ใช้
ในสหรัฐอเมริกา ข้อมูลสุขภาพอยู่ภายใต้กฎหมาย HIPAA (Health Insurance Portability and Accountability Act) ซึ่งกำหนดข้อกำหนดที่เข้มงวดสำหรับการจัดเก็บ การส่ง และการประมวลผลข้อมูลทางการแพทย์ แอปที่ทำงานกับ HealthKit สามารถปฏิบัติตาม HIPAA ได้หากข้อมูลถูกส่งไปยังเซิร์ฟเวอร์ในรูปแบบเข้ารหัสและจำกัดการเข้าถึง
ในสหภาพยุโรป ข้อมูลสุขภาพถือเป็นหมวดหมู่พิเศษของข้อมูลส่วนบุคคลตาม GDPR (มาตรา 9) การประมวลผลข้อมูลดังกล่าวต้องได้รับความยินยอมอย่างชัดแจ้งจากผู้ใช้ และในกรณีส่วนใหญ่ ต้องมีการประเมินผลกระทบด้านการคุ้มครองข้อมูล การละเมิดข้อกำหนด GDPR มีโทษปรับสูงถึง 20 ล้านยูโรหรือ 4% ของรายได้ต่อปีทั่วโลกของบริษัท
ใน รัสเซีย การเก็บรวบรวมข้อมูลสุขภาพอยู่ภายใต้กฎหมาย 152-FZ «เกี่ยวกับข้อมูลส่วนบุคคล» ตั้งแต่ปี 2025 แอปทั้งหมดที่ประมวลผลข้อมูลทางการแพทย์ของพลเมืองรัสเซียต้องใช้เครื่องมือเข้ารหัสที่ได้รับการรับรองและจัดเก็บข้อมูลบนเซิร์ฟเวอร์ที่ตั้งอยู่ในดินแดนของสหพันธรัฐรัสเซีย ตามข้อกำหนดของ Roskomnadzor
คำแนะนำ: ก่อนเผยแพร่แอปที่ทำงานกับข้อมูลสุขภาพ โปรดปรึกษาฝ่ายกฎหมายเพื่อตรวจสอบการปฏิบัติตามกฎระเบียบท้องถิ่น Apple และ Google ขอสงวนสิทธิ์ในการปฏิเสธแอปหากนโยบายความเป็นส่วนตัวไม่เป็นไปตามข้อกำหนด
คำถามที่พบบ่อย
HealthKit คือเฟรมเวิร์กในตัวของ iOS พร้อมพื้นที่จัดเก็บข้อมูลสุขภาพแบบเข้ารหัสในเครื่อง Google Fit คือบริการคลาวด์บนพื้นฐานของ Google Play Services ที่ใช้ OAuth 2.0 สำหรับการอนุญาต HealthKit ทำงานแบบออฟไลน์ Google Fit ต้องการการเชื่อมต่ออินเทอร์เน็ตสำหรับการซิงค์
ได้ บนทั้งสองแพลตฟอร์ม บน iOS ผู้ใช้เลือกประเภทข้อมูลเฉพาะ (จำนวนก้าว อัตราการเต้นของหัวใจ การนอนหลับ) บนหน้าจอขอความยินยอมของ HealthKit บน Android ผู้ใช้เห็นรายการ scope ของ Google Fit และสามารถเพิกถอน สิทธิ์ แต่ละรายการผ่านการตั้งค่าบัญชี Google
HKHealthStore คือคลาสหลักของเฟรมเวิร์ก HealthKit บน iOS มันจัดการการอนุญาต การอ่าน และการเขียนข้อมูลสุขภาพทั้งหมด แอปไม่สามารถเข้าถึงพื้นที่เก็บข้อมูล HealthKit โดยตรง — การดำเนินการทั้งหมดผ่าน HKHealthStore ซึ่งรับประกันอินเทอร์เฟซการเข้าถึงที่เป็นหนึ่งเดียวและการปฏิบัติตามสิทธิ์การเข้าถึงของผู้ใช้
ผู้ใช้สามารถเพิกถอนการเข้าถึงผ่าน การตั้งค่า Google — จัดการบัญชี — ความปลอดภัย — แอปของบริษัทอื่นที่เข้าถึงได้ เลือกแอปแล้วคลิก «ลบการเข้าถึง» นอกจากนี้ยังสามารถเพิกถอนการเข้าถึงผ่าน Google Play Console: บริการที่เชื่อมต่อ — Google Fit — การจัดการแอป
หากแอปประมวลผลข้อมูลสุขภาพของผู้ใช้ในสหรัฐอเมริกาและส่งไปยังเซิร์ฟเวอร์ การปฏิบัติตาม HIPAA เป็นสิ่งจำเป็น หากข้อมูลทั้งหมดยังคงอยู่ในเครื่องและไม่ได้ส่งให้บุคคลที่สาม แอปอาจไม่จำเป็นต้องปฏิบัติตาม HIPAA แต่ Apple แนะนำให้ปฏิบัติตามแนวทางปฏิบัติด้านความปลอดภัยที่ดีที่สุดโดยไม่คำนึงถึงเขตอำนาจศาล
สรุป
เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร
IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ
อ่านเพิ่มเติม