Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> IOS

ฉันจะรับระดับและสถานะของแบตเตอรี่ (เสียบปลั๊ก คายประจุ ชาร์จ ฯลฯ) ใน iOS ได้อย่างไร


ในโพสต์นี้เราจะมาดูวิธีรับสถานะแบตเตอรี่ใน iOS

มาเริ่มกันเลย

ขั้นตอนที่ 1 − เปิด Xcode → โครงการใหม่ → แอปพลิเคชั่นมุมมองเดียว → ตั้งชื่อมันว่า "BatteryState"

ขั้นตอนที่ 2 − เปิด Main.storyboard และเพิ่มป้ายกำกับสองรายการดังที่แสดงด้านล่าง เราจะแสดงสถานะแบตเตอรี่บนป้ายกำกับนี้

ฉันจะรับระดับและสถานะของแบตเตอรี่ (เสียบปลั๊ก คายประจุ ชาร์จ ฯลฯ) ใน iOS ได้อย่างไร

ขั้นตอนที่ 3 - เปิดใช้งานการตรวจสอบสถานะแบตเตอรี่โดยใช้รหัสต่อไปนี้ คุณสามารถใส่รหัสนี้ใน viewDidLoad ของ ViewController

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 ควรเรียกใช้ฟังก์ชัน updateBatteryStateLabel จาก viewDidLoad ด้วยเพื่อแสดงสถานะแบตเตอรี่เริ่มต้น viewDidLoad ของเราดูเหมือนกำลังติดตามหลังจากทำทั้งหมดนี้

override func viewDidLoad() {
   super.viewDidLoad()
   UIDevice.current.isBatteryMonitoringEnabled = true
   NotificationCenter.default.addObserver(self, selector: #selector(batteryLevelDidChange), name: UIDevice.batteryLevelDidChangeNotification, object: nil)
   updateBatteryStateLabel()
}

เรียกใช้รหัสบนอุปกรณ์ ตามสถานะแบตเตอรี่ คุณจะเห็นสถานะต่างๆ ตามที่แสดงในภาพด้านล่าง

ฉันจะรับระดับและสถานะของแบตเตอรี่ (เสียบปลั๊ก คายประจุ ชาร์จ ฯลฯ) ใน iOS ได้อย่างไร