ในโพสต์นี้เราจะมาดูวิธีรับสถานะแบตเตอรี่ใน iOS
มาเริ่มกันเลย
ขั้นตอนที่ 1 − เปิด Xcode → โครงการใหม่ → แอปพลิเคชั่นมุมมองเดียว → ตั้งชื่อมันว่า "BatteryState"
ขั้นตอนที่ 2 − เปิด Main.storyboard และเพิ่มป้ายกำกับสองรายการดังที่แสดงด้านล่าง เราจะแสดงสถานะแบตเตอรี่บนป้ายกำกับนี้

ขั้นตอนที่ 3 - เปิดใช้งานการตรวจสอบสถานะแบตเตอรี่โดยใช้รหัสต่อไปนี้ คุณสามารถใส่รหัสนี้ใน viewDidLoad ของ ViewController
UIDevice.current.isBatteryMonitoringEnabled = true
ขั้นตอนที่ 4 − ประกาศตัวแปรเพื่อคงสถานะแบตเตอรี่ เราจะตั้งชื่อตัวแปรนี้ว่า batteryState จากตัวแปรนี้ เรากำลังส่งคืน UIDevice.current.batteryState ซึ่งจะให้สถานะแบตเตอรี่ปัจจุบันแก่เรา
var batteryState: UIDevice.BatteryState {
return UIDevice.current.batteryState
} ขั้นตอนที่ 5 − คุณจะต้องเพิ่มผู้สังเกตการณ์สำหรับการแจ้งเตือนการเปลี่ยนแปลงสถานะแบตเตอรี่ iOS จะส่งการแจ้งเตือนนี้ทุกครั้งที่สถานะแบตเตอรี่เปลี่ยนแปลง คุณสามารถเพิ่มผู้สังเกตการณ์ใน viewDidLoad ดังที่แสดงด้านล่าง
NotificationCenter.default.addObserver(self, selector: #selector(batteryLevelDidChange), name: UIDevice.batteryLevelDidChangeNotification, object: nil)
เราได้เพิ่มผู้สังเกตการณ์แล้ว ฟังก์ชัน batteryLevelDidChange จะถูกเรียกเมื่อใดก็ตามที่ระดับแบตเตอรี่เปลี่ยนแปลง
ขั้นตอนที่ 6 - จัดการการเปลี่ยนแปลงระดับแบตเตอรี่ในวิธี batteryLevelDidChange กำหนดวิธีการดังต่อไปนี้
@objc func batteryLevelDidChange() {
updateBatteryStateLabel()
}
func updateBatteryStateLabel() {
var status = "Unknown"
switch batteryState {
case .charging:
status = "Charging"
case .unknown:
status = "Unknown"
case .unplugged:
status = "Unplugged"
case .full:
status = "Full"
}
DispatchQueue.main.async {
self.batteryStateLabel.text = "Battery State: \(status)"
}
} ที่นี่เราได้กำหนดฟังก์ชัน updateBatteryStateLabel เพื่ออัปเดตป้ายกำกับ ฟังก์ชันนี้ที่เราเรียกใช้จากฟังก์ชันผู้สังเกตการณ์ของเรา เช่น batteryLevelDidChange ควรเรียกใช้ฟังก์ชัน updateBatteryStateLabel จาก viewDidLoad ด้วยเพื่อแสดงสถานะแบตเตอรี่เริ่มต้น viewDidLoad ของเราดูเหมือนกำลังติดตามหลังจากทำทั้งหมดนี้
override func viewDidLoad() {
super.viewDidLoad()
UIDevice.current.isBatteryMonitoringEnabled = true
NotificationCenter.default.addObserver(self, selector: #selector(batteryLevelDidChange), name: UIDevice.batteryLevelDidChangeNotification, object: nil)
updateBatteryStateLabel()
} เรียกใช้รหัสบนอุปกรณ์ ตามสถานะแบตเตอรี่ คุณจะเห็นสถานะต่างๆ ตามที่แสดงในภาพด้านล่าง
