Xcode 11 • Swift 5.1
首先启用电池监控:
UIDevice.current.isBatteryMonitoringEnabled = true
然后您可以创建一个计算属性来返回电池电量:
电池电量范围从 0.0(完全放电)到 1.0(100%)
带电)。在访问此属性之前,请确保电池电量充足
监控已启用。如果未启用电池监控,则电池
state 是 UIDevice.BatteryState.unknown 并且该属性的值
是 –1.0。
var batteryLevel: Float { UIDevice.current.batteryLevel }
要监控您的设备电池电量,您可以添加一个观察者UIDevice.batteryLevelDidChangeNotification
:
NotificationCenter.default.addObserver(self, selector: #selector(batteryLevelDidChange), name: UIDevice.batteryLevelDidChangeNotification, object: nil)
电池电量范围从 0.0(完全放电)到 1.0(100% 充电)。在访问此属性之前,请确保已启用电池监控。
如果未启用电池监控,则电池状态为 UIDevice.BatteryState.unknown,且该属性的值为 –1.0。
@objc func batteryLevelDidChange(_ notification: Notification) {
print(batteryLevel)
}
您还可以验证电池状态:
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."
并添加一个观察者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")
}
}