我想检查我的 iphone 是否正在充电以及百分比。当我启动应用程序时,我能够获得百分比并知道它是否插入,但是当我拔下充电器时,我无法让它改变状态。本质上,我希望能够插入和拔出手机,并将我的Charge.text字段状态从“充电”更改为“拔出”,反之亦然。
我实现了一个警告框,但它也只在我启动应用程序时弹出。我在那里得到了核心位置,因为我有一个关于实现位置反馈的想法,但它现在没有使用,请忽略它。
在搜索论坛时,我似乎只得到关于如何检查一次的答案,而不是持续更新。我不知道“实时”描述是否有帮助,但我真的不知道如何描述它。请帮忙 :)
import UIKit
import CoreLocation
import Alamofire
import SwiftyJSON
class ViewController: UIViewController, CLLocationManagerDelegate {
@IBOutlet weak var Charge: UILabel!
@IBOutlet weak var resultsField: UILabel!
var chargingVar = ""
var batteryLevel: Float {
return UIDevice.current.batteryLevel
}
func batteryStatus() {
UIDevice.current.isBatteryMonitoringEnabled = true
batteryStateChanged()
switch UIDevice.current.batteryState {
case .unknown:
self.Charge.text = "BATTERY: UNKNOWN!"
case .charging:
self.Charge.text = "Charging..."
case .full:
self.Charge.text = "BATTERY full"
case .unplugged:
self.Charge.text = "unplugged"
default:
self.Charge.text = "nope"
}
}
func batteryStateChanged(){
if (UIDevice.current.batteryState == .charging) { UIApplication.shared.isIdleTimerDisabled = true
self.chargingVar = "is charging. \u{1F603}"
chargingAlaer()
}else{
self.chargingVar = "is not charging. \u{1F622} "
chargingAlaer()
}
}
func chargingAlaer(){
let alertController = UIAlertController(title: "Charging Status",
message: "Your device \(chargingVar)",
preferredStyle: UIAlertController.Style.alert)
let ok = UIAlertAction(title: "OK",
style: UIAlertAction.Style.default,
handler: {(action) -> Void in
})
alertController.addAction(ok)
self.present(alertController, animated: true, completion: nil)
}
@objc func displayBatteryCharge() {
self.resultsField.text = "\(batteryLevel * 100)%"
}
override func viewDidLoad() {
super.viewDidLoad()
UIDevice.current.isBatteryMonitoringEnabled = true
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
override func viewDidAppear(_ animated: Bool) {
displayBatteryCharge()
batteryStatus()
}
}