Восстановление уровня заряда батареи работает только в первый раз, когда я делаю это
Когда мое приложение запускается впервые, уровень заряда батареи корректно определяется float batteryLevel = [UIDevice currentDevice].batteryLevel
, Однако, когда я пытаюсь получить его позже в своем коде, я всегда получаю одно и то же значение, даже если уровень заряда батареи изменился.
Последующие звонки [UIDevice currentDevice].batteryLevel
всегда возвращайте тот же результат, что и первый, например: если уровень заряда батареи составлял 30% при запуске моего приложения, то через 10 минут, когда я пытаюсь восстановить его, я тоже получаю 30%, но на самом деле уровень заряда батареи на данный момент 40%.
У кого-нибудь есть идеи, почему это может произойти?
1 ответ
Для мониторинга изменения уровня заряда батареи Вы можете использовать уведомление о состоянии батареи UIDeviceBatteryStateDidChangeNotification
а также UIDeviceBatteryLevelDidChangeNotification
Вы можете зарегистрировать свой VC для получения уведомления об изменении следующим образом:
NSNotificationCenter.defaultCenter().addObserver(self, selector: "batteryStateDidChange:", name: UIDeviceBatteryStateDidChangeNotification, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: "batteryLevelDidChange:", name: UIDeviceBatteryLevelDidChangeNotification, object: nil)
А затем реализовать методы селектора
func batteryStateDidChange(notification: NSNotification){
// The stage did change: plugged, unplugged, full charge...
}
func batteryLevelDidChange(notification: NSNotification){
// The battery's level did change (98%, 99%, ...)
}