การตรวจสอบสถานะและระดับแบตเตอรี่บน iOS
บทความนี้แนะนำวิธีการอ่านสถานะแบตเตอรี่ (Charging, Unplugged, Full, Unknown) และระดับแบตเตอรี่แบบ Real-time
ขั้นตอนที่ 1: สร้างโปรเจกต์
Xcode → New Project → Single View Application → ชื่อ "BatteryState"
ขั้นตอนที่ 2: เพิ่ม Label 2 ตัวใน Storyboard
หนึ่งตัวสำหรับแสดงสถานะ อีกตัวสำหรับแสดงระดับเปอร์เซ็นต์ (ถ้าต้องการ)
ขั้นตอนที่ 3: เปิดใช้งาน Battery Monitoring
UIDevice.current.isBatteryMonitoringEnabled = true
วางใน viewDidLoad เพื่อให้ระบบเริ่มรายงานสถานะแบตเตอรี่
ขั้นตอนที่ 4: สร้าง Computed Property สำหรับอ่านสถานะ
var batteryState: UIDevice.BatteryState {
return UIDevice.current.batteryState
}
ขั้นตอนที่ 5: เพิ่ม Observer สำหรับการเปลี่ยนแปลงสถานะ
NotificationCenter.default.addObserver(
self,
selector: #selector(batteryLevelDidChange),
name: UIDevice.batteryLevelDidChangeNotification,
object: nil
)
ขั้นตอนที่ 6: จัดการเมื่อสถานะเปลี่ยนแปลง
@objc func batteryLevelDidChange() {
updateBatteryStateLabel()
}
func updateBatteryStateLabel() {
var status = "Unknown"
switch batteryState {
case .charging: status = "Charging"
case .unplugged: status = "Unplugged"
case .full: status = "Full"
case .unknown: status = "Unknown"
@unknown default: status = "Unknown"
}
DispatchQueue.main.async {
self.batteryStateLabel.text = "Battery State: \(status)"
}
}
ขั้นตอนที่ 7: เรียกใช้งานใน viewDidLoad
override func viewDidLoad() {
super.viewDidLoad()
UIDevice.current.isBatteryMonitoringEnabled = true
NotificationCenter.default.addObserver(
self,
selector: #selector(batteryLevelDidChange),
name: UIDevice.batteryLevelDidChangeNotification,
object: nil
)
updateBatteryStateLabel() // แสดงสถานะเริ่มต้น
}
หมายเหตุสำคัญ
- ต้องทดสอบบนอุปกรณ์จริง (Simulator ไม่รองรับ Battery state)
- 記得移除 Observer ใน
deinitเพื่อป้องกัน Memory Leak - สามารถอ่านระดับแบตเตอรี่ได้จาก
UIDevice.current.batteryLevel(ค่า 0.0 - 1.0, -1.0 = unknown)