Check Battery Level iOS Swift [closed] Check Battery Level iOS Swift [closed] ios ios

Check Battery Level iOS Swift [closed]


Xcode 11 • Swift 5.1

First just enable battery monitoring:

UIDevice.current.isBatteryMonitoringEnabled = true

Then you can create a computed property to return the battery level:

Battery level ranges from 0.0 (fully discharged) to 1.0 (100%charged). Before accessing this property, ensure that batterymonitoring is enabled. If battery monitoring is not enabled, batterystate is UIDevice.BatteryState.unknown and the value of this propertyis –1.0.

var batteryLevel: Float { UIDevice.current.batteryLevel }

To monitor your device battery level you can add an observer for the UIDevice.batteryLevelDidChangeNotification:

NotificationCenter.default.addObserver(self, selector: #selector(batteryLevelDidChange), name: UIDevice.batteryLevelDidChangeNotification, object: nil)

Battery level ranges from 0.0 (fully discharged) to 1.0 (100% charged). Before accessing this property, ensure that battery monitoring is enabled.
If battery monitoring is not enabled, battery state is UIDevice.BatteryState.unknown and the value of this property is –1.0.


@objc func batteryLevelDidChange(_ notification: Notification) {    print(batteryLevel)}

You can also verify the battery state:

var batteryState: UIDevice.BatteryState { UIDevice.current.batteryState }

case .unknown   //  "The battery state for the device cannot be determined."case .unplugged //  "The device is not plugged into power; the battery is discharging"case .charging  //  "The device is plugged into power and the battery is less than 100% charged."case .full      //   "The device is plugged into power and the battery is 100% charged."

and add an observer for UIDevice.batteryStateDidChangeNotification:

NotificationCenter.default.addObserver(self, selector: #selector(batteryStateDidChange), name: UIDevice.batteryStateDidChangeNotification, object: nil)

@objc func batteryStateDidChange(_ notification: Notification) {    switch batteryState {    case .unplugged, .unknown:        print("not charging")    case .charging, .full:        print("charging or full")    }}


var batteryLevel: Float { get }

Make sure that battery monitoring is enabled first =)

Apple Documentation