如何在iOS中获取电池电量和状态(已插入、放电、充电等)?
在这篇文章中,我们将学习如何在iOS中获取电池状态。
让我们开始吧。
**步骤1** - 打开Xcode → 新建项目 → 单视图应用程序 → 命名为“BatteryState”
**步骤2** - 打开Main.storyboard并添加两个标签,如下所示。我们将在此标签上显示电池状态。
**步骤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调用此函数。也应该从viewDidLoad调用updateBatteryStateLabel函数以显示初始电池状态。完成所有操作后,我们的viewDidLoad如下所示。
override func viewDidLoad() { super.viewDidLoad() UIDevice.current.isBatteryMonitoringEnabled = true NotificationCenter.default.addObserver(self, selector: #selector(batteryLevelDidChange), name: UIDevice.batteryLevelDidChangeNotification, object: nil) updateBatteryStateLabel() }
在设备上运行代码,根据电池状态,您将看到如下所示的不同状态。
广告