如何在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()
}

在设备上运行代码,根据电池状态,您将看到如下所示的不同状态。

更新于:2019年9月11日

浏览量:585

启动你的职业生涯

通过完成课程获得认证

开始学习
广告