이 게시물에서 우리는 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()
} 기기에서 코드를 실행하면 배터리 상태에 따라 아래 그림과 같이 다른 상태가 표시됩니다.
