如何在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()
}在设备上运行代码,根据电池状态,您将看到如下所示的不同状态。

广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP