iOS电池相关API
iOS系统中关于电池的Api较少,据本人了解目前仅有两种电视相关的Api,一种是电量状态,一种是电池状态。
开启电池监听
在使用电池相关API的时候需要先开启电池监听,开启代码如下:
UIDevice.current.isBatteryMonitoringEnabled = true
获取电池状态
print(UIDevice.current.batteryLevel);
print(UIDevice.current.batteryState);
batteryLevel 表示电量信息,取值范围是0~1.0,如果获取的值为-1,则表示当前电池状态为未知,如:在模拟器上运行代码。
batteryState 表示电池状态,是一个枚举类型,如下:
public enum UIDeviceBatteryState : Int {
case unknown //电池状态未知
case unplugged // 电池未连接充电器,处于放电状态
case charging // 电池已经连接了充电器,但并没有充满。
case full // 电池已经连接了充电器,并且已经充满。
}
监听电池状态
系统为我们提供了两个通知,方便我们去监听电池状态的变化。分别是:UIDeviceBatteryLevelDidChange 和 UIDeviceBatteryStateDidChange。 使用方式如下:
func adBatteryObserver() {
NotificationCenter.default
.addObserver(self,
selector: #selector(batteryLevelDidChange(notify:)),
name: NSNotification.Name.UIDeviceBatteryLevelDidChange,
object: nil)
NotificationCenter.default
.addObserver(self,
selector: #selector(batteryStateDidChange(notify:)),
name: NSNotification.Name.UIDeviceBatteryStateDidChange,
object: nil)
}
@objc func batteryLevelDidChange(notify:Notification) {
self.textLabel2.text = "当前电量为:" + String(UIDevice.current.batteryLevel);
}
@objc func batteryStateDidChange(notify:Notification) {
self.textLabel2.text = "当前电量为:" + String(UIDevice.current.batteryLevel);
switch UIDevice.current.batteryState {
case .charging:
self.textLabel.text = "charging"
break
case .unknown:
self.textLabel.text = "unknown"
break
case .unplugged:
self.textLabel.text = "unplugged"
break
case .full:
self.textLabel.text = "full"
break
}
}
小结
以上就是iOS电池相关的API,如有遗漏欢迎补充。
网友评论