В iOS у нас нет одинакового доступа на уровне устройства во все времена, как в Android. Наши приложения могут получать уведомления, такие как состояние батареи, когда они не были прерваны.
Если ваше приложение имеет передний план, попробуйте использовать приведенный ниже код для доступа к состоянию аккумулятора устройства.
// Begins battery state monitoring //
UIDevice.currentDevice().batteryMonitoringEnabled = true
// Check for battery's current status //
if (UIDevice.currentDevice().batteryState != .Unplugged) {
print("Device is plugged in.")
}
Вы также можете запустить следующий код, чтобы проверить состояние батареи устройства в установленные сроки, когда ваше приложение достигает фона. ПРИМЕЧАНИЕ. Выполнение следующего, скорее всего, приведет к отказу от выпуска в App Store.
func applicationDidEnterBackground(application: UIApplication) {
// Begins battery state monitoring //
UIDevice.currentDevice().batteryMonitoringEnabled = true
// Schedules NSTimer with intervals of 10 seconds //
NSTimer.scheduledTimerWithTimeInterval(10, target: self, selector: #selector(batteryCheck), userInfo: nil, repeats: true)
}
func batteryCheck() {
if (UIDevice.currentDevice().batteryState != .Unplugged) {
print("Device is charging.")
} else {
print("Device is NOT charging.")
}
}