如何在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() }
在裝置上執行程式碼,根據電池狀態,您將看到如下所示的不同狀態。
廣告