在我的项目中,我想详细显示电池信息。使用UIDevice
我可以轻松获得电池电量,但我的需求远不止于此。我想获得这样的电池健康状况,循环次数,电压以及更多关于电池的细节。 (越多越好!! )。我真的需要一些建议,谢谢!
答案 0 :(得分:2)
UIDevice
提供的所有内容都是您指出的级别及其current state(见下文)。您感兴趣的其余项目要么使用私有API,这会使您的应用从商店中被拒绝,或者根本无法通过任何API使用。
对于那些希望了解与电池相关的UIDevice相关内容的人来说,这涵盖了官方的Apple API:
var batteryLevel: CGFloat
返回0.0(空)到1.0(完整)var isBatteryMonitoringEnabled: Bool
会返回true
或false
,具体取决于您是否希望收到有关电池状态更改的通知。将其设置为true可以获得batteryState
var batteryState: UIDeviceBatteryState
提供电池状态,如果unknown
设置为false,则为isBatteryMonitoringEnabled
。 可能的状态是:
unknown
- 无法确定设备的电池状态。
unplugged
- 设备未插入电源;电池正在放电。
charging
- 设备已接通电源且电池电量低于100%。
full
- 设备已接通电源,电池100%充电。
答案 1 :(得分:1)
首先启用电池监控:
UIDevice.current.isBatteryMonitoringEnabled = true
然后你可以创建一个计算属性来返回电池电量:
var batteryLevel: Float {
return UIDevice.current.batteryLevel
}
要监控设备电池电量,您可以为UIDeviceBatteryLevelDidChange通知添加观察者:
NotificationCenter.default.addObserver(self, selector: #selector(batteryLevelDidChange), name: .UIDeviceBatteryLevelDidChange, object: nil)
func batteryLevelDidChange(_ notification: Notification) {
print(batteryLevel)
}
您还可以验证电池状态:
var batteryState: UIDeviceBatteryState {
return 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."
为UIDeviceBatteryStateDidChange通知添加观察者:
NotificationCenter.default.addObserver(self, selector: #selector(batteryStateDidChange), name: .UIDeviceBatteryStateDidChange, object: nil)
func batteryStateDidChange(_ notification: Notification) {
switch batteryState {
case .unplugged, .unknown:
print("not charging")
case .charging, .full:
print("charging or full")
}
}