이 게시물에서 우리는 iOS에서 배터리 상태를 얻는 방법을 볼 것입니다.
시작하겠습니다.
1단계 − Xcode 열기 → 새 프로젝트 → 단일 보기 응용 프로그램 → 이름을 "BatteryState"로 지정합니다.
2단계 − Main.storyboard를 열고 아래와 같이 두 개의 레이블을 추가합니다. 이 라벨에 배터리 상태가 표시됩니다.
3단계 − 다음 코드를 사용하여 배터리 상태 모니터링을 활성화합니다. 이 코드를 ViewController의 viewDidLoad에 넣을 수 있습니다.
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() }
기기에서 코드를 실행하면 배터리 상태에 따라 아래 그림과 같이 다른 상태가 표시됩니다.