Computer >> 컴퓨터 >  >> 프로그램 작성 >> IOS

iOS에서 배터리 잔량 및 상태(연결, 방전, 충전 등)를 얻으려면 어떻게 해야 합니까?

<시간/>

이 게시물에서 우리는 iOS에서 배터리 상태를 얻는 방법을 볼 것입니다.

시작하겠습니다.

1단계 − Xcode 열기 → 새 프로젝트 → 단일 보기 응용 프로그램 → 이름을 "BatteryState"로 지정합니다.

2단계 − Main.storyboard를 열고 아래와 같이 두 개의 레이블을 추가합니다. 이 라벨에 배터리 상태가 표시됩니다.

iOS에서 배터리 잔량 및 상태(연결, 방전, 충전 등)를 얻으려면 어떻게 해야 합니까?

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()
}

기기에서 코드를 실행하면 배터리 상태에 따라 아래 그림과 같이 다른 상태가 표시됩니다.

iOS에서 배터리 잔량 및 상태(연결, 방전, 충전 등)를 얻으려면 어떻게 해야 합니까?