如何在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

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告