สมาร์ทโฟนสมัยใหม่ไม่ใช่แค่อุปกรณ์คำนวณ แต่เป็นชุดของเซนเซอร์อันทรงพลัง กล้อง, มาตรความเร่ง, ไจโรสโคป, NFC, สแกนใบหน้า — ทั้งหมดนี้พร้อมใช้งานสำหรับนักพัฒนาผ่าน API ของแพลตฟอร์ม คุณสมบัติฮาร์ดแวร์ ช่วยให้คุณสร้างแอปพลิเคชันที่โต้ตอบกับโลกทางกายภาพ ตั้งแต่ตัวติดตามฟิตเนสไปจนถึงเกมความเป็นจริงเสริม ในบทความนี้ เราจะครอบคลุมเซนเซอร์หลักและ API ทั้งหมดสำหรับ iOS และ Android สำหรับรายละเอียดเพิ่มเติม โปรดดู เอกสารทางการของ Android Sensors
ประเด็นสำคัญ
คุณสมบัติฮาร์ดแวร์ของสมาร์ทโฟนประกอบด้วยเซนเซอร์มากมายที่รวบรวมข้อมูลเกี่ยวกับสภาพแวดล้อมและตำแหน่งของอุปกรณ์ ข้อมูลนี้พร้อมใช้งานผ่าน Sensors API (Android) และ Core Motion (iOS) เซนเซอร์แบ่งออกเป็นสามประเภท: เซนเซอร์การเคลื่อนที่ (มาตรความเร่ง, ไจโรสโคป), เซนเซอร์ตำแหน่ง (แมกนีโตมิเตอร์), และเซนเซอร์สภาพแวดล้อม (บารอมิเตอร์, แสง, อุณหภูมิ)
มาตรความเร่งวัดความเร่งของอุปกรณ์ตามสามแกน (x, y, z) ในหน่วย m/s² ใช้สำหรับ: การตรวจจับการวางแนวหน้าจอ (หมุนอัตโนมัติ), การนับก้าว (การนำทางคนเดิน), การรู้จำท่าทาง (เขย่าเพื่อเลิกทำ), เกมควบคุมด้วยการเอียง Android Sensor.TYPE_ACCELEROMETER และ Core Motion CMMotionManager (iOS) ให้ข้อมูลดิบที่ความถี่สูงถึง 200 Hz
ไจโรสโคปวัดความเร็วเชิงมุมของการหมุนของอุปกรณ์ตามสามแกน (rad/s) ซึ่งแตกต่างจากมาตรความเร่ง ไจโรสโคปไม่ได้รับผลกระทบจากแรงโน้มถ่วง ทำให้เหมาะสำหรับการติดตามการหมุน การใช้งาน: การรักษาเสถียรภาพวิดีโอ, แอปพลิเคชัน VR/AR, การนำทางในร่ม, ตัวควบคุมเกม Sensor.TYPE_GYROSCOPE (Android) และ CMMotionManager (iOS) เป็น API หลัก
แมกนีโตมิเตอร์วัดสนามแม่เหล็กโลกตามสามแกน (µT) และทำหน้าที่เป็นเข็มทิศอิเล็กทรอนิกส์ ใช้ในแอปพลิเคชันนำทางเพื่อกำหนดทิศทางไปยังทิศเหนือ แมกนีโตมิเตอร์ไวต่อการรบกวนจากวัตถุโลหะและลำโพง; ต้องการการปรับเทียบ (การเคลื่อนที่รูปเลขแปดที่เป็นลักษณะเฉพาะ) Sensor.TYPE_MAGNETIC_FIELD — Android API
บารอมิเตอร์วัดความดันบรรยากาศ (hPa) และใช้ในการกำหนดระดับความสูงเหนือระดับน้ำทะเลด้วยความแม่นยำสูงถึง 1 เมตร เซนเซอร์ความใกล้ชิดปิดหน้าจอเมื่อถือโทรศัพท์แนบหูระหว่างการโทร เซนเซอร์แสงโดยรอบปรับความสว่างหน้าจอ เซนเซอร์ทั้งหมดนี้ สามารถเข้าถึงได้ผ่าน SensorManager (Android) หรือ CMMotionManager (iOS) สำหรับเซนเซอร์การเคลื่อนที่ส่วนใหญ่
กล้องเป็นหนึ่งในส่วนประกอบฮาร์ดแวร์ที่เป็นที่ต้องการมากที่สุด บน Android สามารถเข้าถึงได้ผ่าน CameraX (API Jetpack สมัยใหม่) หรือ Camera2 (API ระดับต่ำ) CameraX จัดการวงจรชีวิตโดยอัตโนมัติ รองรับ Preview, ImageCapture, ImageAnalysis (การวิเคราะห์เฟรม ML) และ VideoCapture บน iOS กล้องพร้อมใช้งานผ่าน AVFoundation: AVCaptureSession จัดการการจับภาพ, AVCaptureDevice กำหนดค่าพารามิเตอร์ (โฟกัส, ISO, สมดุลสีขาว)
ไมโครโฟนใช้สำหรับบันทึกเสียง, ควบคุมด้วยเสียง, และรู้จำเสียงพูด บน Android — MediaRecorder หรือ AudioRecord; บน iOS — AVAudioRecorder การเข้าถึงกล้องและไมโครโฟนต้องได้รับอนุญาตจากผู้ใช้: Manifest.permission.CAMERA และ RECORD_AUDIO (Android), NSCameraUsageDescription และ NSMicrophoneUsageDescription (iOS) — สตริงใน Info.plist ที่อธิบายเหตุผลการใช้งาน
ที่ IT Sectr เราได้ดำเนินโครงการมากกว่า 20 โครงการด้วยกล้องแบบกำหนดเอง ตั้งแต่เครื่องสแกน QR Code ไปจนถึงแอปพลิเคชันที่มีฟิลเตอร์ AR ข้อสรุปหลัก: บน Android CameraX ช่วยประหยัดเวลาในการพัฒนาหลายสัปดาห์เมื่อเทียบกับ Camera2 ในขณะที่บน iOS AVFoundation ให้การควบคุมพารามิเตอร์การถ่ายภาพอย่างสมบูรณ์ ตัวอย่างการจับภาพพื้นฐานผ่าน CameraX:
class CameraFragment : Fragment() {
private lateinit var imageCapture: ImageCapture
fun startCamera() {
val processCameraProvider =
ProcessCameraProvider.getInstance(requireContext())
processCameraProvider.addListener({
val cameraProvider = processCameraProvider.get()
val preview = Preview.Builder()
.build()
.also {
it.setSurfaceProvider(viewFinder.surfaceProvider)
}
imageCapture = ImageCapture.Builder()
.setCaptureMode(ImageCapture.CAPTURE_MODE_MINIMIZE_LATENCY)
.build()
val cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA
cameraProvider.bindToLifecycle(
this, cameraSelector, preview, imageCapture
)
}, ContextCompat.getMainExecutor(requireContext()))
}
}
คุณสมบัติฮาร์ดแวร์ไบโอเมตริกซ์ช่วยให้ผู้ใช้เข้าสู่ระบบแอปพลิเคชันโดยใช้ลายนิ้วมือหรือใบหน้า iOS ใช้ Face ID (กล้อง TrueDepth, 30,000 จุดที่มองไม่เห็น) และ Touch ID (เครื่องสแกนลายนิ้วมือแบบ capacitive) Android ใช้ BiometricPrompt ซึ่งรวมเครื่องสแกนลายนิ้วมือ (capacitive หรือ ultrasonic) และ Face Unlock (กล้อง + ML) Face ID ปลอดภัยกว่า Touch ID: ความน่าจะเป็นในการตรงกัน 1:1,000,000 เทียบกับ 1:50,000
NFC (การสื่อสารระยะใกล้) เป็นเทคโนโลยีการสื่อสารไร้สายที่มีระยะสูงสุด 10 ซม. ใช้สำหรับ: การชำระเงินแบบไร้สัมผัส (Google Pay, Apple Pay), การอ่านแท็ก NFC (โปสเตอร์อัจฉริยะ, นามบัตร), การยืนยัน (เอกสาร, ตั๋ว), การถ่ายโอนข้อมูล (Android Beam — ล้าสมัย) Core NFC (iOS) และ NfcAdapter (Android) เป็น API หลัก บน iOS NFC พร้อมใช้งานสำหรับการอ่านเท่านั้น (ยกเว้นการชำระเงิน Apple Pay)
Bluetooth/BLE (Bluetooth พลังงานต่ำ) — สำหรับเชื่อมต่ออุปกรณ์ภายนอก: หูฟัง, สายรัดฟิตเนส, เซนเซอร์ทางการแพทย์, ล็อคอัจฉริยะ Core Bluetooth (iOS) และ android.bluetooth (Android) — API สำหรับสแกน, เชื่อมต่อ, และแลกเปลี่ยนข้อมูล BLE ประหยัดพลังงาน: อุปกรณ์สามารถทำงานด้วยแบตเตอรี่ได้นานหลายปี บน iOS การทำงาน BLE ในพื้นหลังต้องเปิดใช้งาน Background Modes → Uses Bluetooth LE accessories
คุณสมบัติฮาร์ดแวร์สุขภาพ: HealthKit (iOS) — เฟรมเวิร์กของ Apple สำหรับรวบรวมข้อมูลสุขภาพ ผู้ใช้อนุญาตให้อ่านและเขียนข้อมูลประเภทเฉพาะ: ก้าว, อัตราการเต้นของหัวใจ, การนอนหลับ, แคลอรี, น้ำหนัก, ความดันโลหิต ข้อมูลทั้งหมดถูกเก็บไว้ในพื้นที่เก็บข้อมูลที่ได้รับการป้องกันและซิงค์ผ่าน iCloud HealthKit มี อินเทอร์เฟซแบบรวมสำหรับการเขียน HKQuantitySample และการอ่านผ่าน HKSampleQuery หรือ HKStatisticsQuery
Google Fit — แพลตฟอร์มของ Google สำหรับข้อมูลฟิตเนสบน Android API แบ่งออกเป็นสองชุด: Sensors API (ข้อมูลจริงจากเซนเซอร์อุปกรณ์ — ก้าว, แคลอรี) และ History API (การอ่าน/เขียนข้อมูลประวัติ) Google Fit ยังรวบรวมข้อมูลจากแอปฟิตเนสอื่นๆ (Strava, Runkeeper) ผ่านการอนุญาต บน iOS Google Fit พร้อมใช้งานผ่าน REST API
Core Motion (iOS) — เฟรมเวิร์กสำหรับทำงานกับเซนเซอร์การเคลื่อนที่โดยไม่ต้องใช้ชิปเฉพาะ: มาตรความเร่ง, ไจโรสโคป, เครื่องนับก้าว (CMPedometer), เครื่องวัดความสูง (CMAltimeter) CMPedometer นับก้าว, ระยะทางที่เดิน, จังหวะ, และจำนวนชั้นที่ขึ้น บน Android ความสามารถที่คล้ายกันมีให้โดย Sensor.TYPE_STEP_COUNTER และ Step Detector ข้อมูลฟิตเนสทั้งหมดต้องการความยินยอมอย่างชัดแจ้งจากผู้ใช้
ความเป็นจริงเสริม (AR) และการเรียนรู้ของเครื่องบนอุปกรณ์เป็นจุดสูงสุดของความสามารถฮาร์ดแวร์สมาร์ทโฟน ARKit (Apple, iOS 11+) ใช้กล้อง, ไจโรสโคป, มาตรความเร่ง, และ LiDAR (บนรุ่น Pro) เพื่อติดตามพื้นที่โดยรอบ ARCore (Google) เป็นสิ่งที่เทียบเท่าสำหรับ Android พร้อมการติดตามระนาบ, การรู้จำภาพ, และการประมาณแสง เฟรมเวิร์กทั้งสองใช้ Visual Inertial Odometry (VIO) — การรวมกันของกล้องและเซนเซอร์เฉื่อย
ML Kit (Google) — SDK สำหรับการเรียนรู้ของเครื่องบน Android และ iOS รวม API พร้อมใช้: การรู้จำข้อความ (OCR), การสแกนบาร์โค้ด, การรู้จำใบหน้า, การตรวจจับท่าทาง, การติดตามวัตถุ, การรู้จำข้อความในภาพ, และการประมวลผลภาษาธรรมชาติ ML Kit ทำงานบนอุปกรณ์ทั้งหมด — ข้อมูลจะไม่ถูกส่งไปยังเซิร์ฟเวอร์ ทำให้มั่นใจในความเป็นส่วนตัวและการทำงานแบบออฟไลน์
Core ML (Apple) — เฟรมเวิร์กสำหรับรวมโมเดล ML ในแอปพลิเคชัน iOS โมเดล (mlmodel) ถูกแปลงจาก TensorFlow, PyTorch หรือ Keras ผ่าน Core ML Tools Vision — เฟรมเวิร์กสำหรับคอมพิวเตอร์วิทัศน์: การตรวจจับใบหน้า, ข้อความ, บาร์โค้ด, การจัดแนวแนวนอน การรวม Vision และ Core ML ช่วยให้สร้างไปป์ไลน์ ML แบบเรียลไทม์: การจับภาพเฟรม → การวิเคราะห์ Vision → การทำนาย Core ML → การอัปเดต UI — ทั้งหมดบนอุปกรณ์ด้วยความหน่วงต่ำกว่า 50 มิลลิวินาที
คำถามที่พบบ่อย
สมาร์ทโฟนสมัยใหม่ประกอบด้วย มาตรความเร่ง, ไจโรสโคป, แมกนีโตมิเตอร์ (เข็มทิศ), บารอมิเตอร์, เซนเซอร์ความใกล้ชิด, เซนเซอร์แสงโดยรอบ, เครื่องสแกนลายนิ้วมือ, กล้อง, ไมโครโฟน, NFC, Bluetooth, Wi-Fi, GPS รุ่นเรือธงยังมี LiDAR, จอภาพอัตราการเต้นของหัวใจ และเซนเซอร์อุณหภูมิ
Face ID คือการยืนยันตัวตนแบบไบโอเมตริกซ์ใบหน้าโดยใช้กล้อง TrueDepth (การฉาย 30,000 จุด) Touch ID คือการยืนยันตัวตนด้วยลายนิ้วมือผ่านสแกนเนอร์แบบ capacitive Face ID ปลอดภัยกว่า (1 ใน 1,000,000 เทียบกับ 1 ใน 50,000) และทำงานโดยไม่ต้องสัมผัส
วิธีการสมัยใหม่คือ CameraX (ไลบรารี Jetpack) CameraX ทำให้การทำงานกับกล้องง่ายขึ้น: จัดการวงจรชีวิตโดยอัตโนมัติ รองรับ Preview, ImageCapture, ImageAnalysis และ VideoCapture สำหรับโปรเจกต์เก่า จะใช้ Camera2 API
NFC ช่วยให้: อ่านและเขียนแท็ก NFC (โปสเตอร์อัจฉริยะ, นามบัตร), ชำระเงินแบบไร้สัมผัส (Google Pay, Apple Pay), ถ่ายโอนข้อมูลระหว่างอุปกรณ์, ยืนยันเอกสาร, เปิดประตู, ใช้บัตรโดยสาร บน iOS NFC พร้อมใช้งาน สำหรับการอ่านเท่านั้น (ยกเว้น Apple Pay)
ARKit คือเฟรมเวิร์กของ Apple สำหรับความเป็นจริงเสริมบน iOS ARCore คือสิ่งที่เทียบเท่าของ Google สำหรับ Android ทั้งสองรองรับการติดตามระนาบ, การรู้จำภาพ, และการประมาณแสง ARKit ใช้ LiDAR (บน iPad Pro/iPhone Pro) สำหรับการระบุตำแหน่งที่แม่นยำยิ่งขึ้น
สรุป
เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร
IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ