Как получить процент заряда батареи системы в Swift 5?

Я пытаюсь включить функцию батареи в свой виджет, но не могу получить процент заряда батареи мобильного телефона...

Я старался:

import UIKit

struct BatteryControl {
    static func getBatteryPercent() -> Int {
        UIDevice.current.isBatteryMonitoringEnabled = true
        print("BATTERY : \(UIDevice.current.batteryLevel)")
        return Int(UIDevice.current.batteryLevel * 100)
    }
}

Просто постоянно показывает, что батарея -1.0

РЕДАКТИРОВАНИЕ РЕШЕНИЕ: Симулятор всегда показывает тесто как -1.0, но при тестировании на реальном устройстве он показал правильное значение.


person Sarvesh Sridhar    schedule 15.11.2020    source источник
comment
Вы тестируете на реальном устройстве? Я думаю, на симуляторе он всегда будет возвращать этот номер.   -  person Kamran    schedule 15.11.2020


Ответы (1)


Мониторинг батареи должен быть включен в методе didFinishLaunchingWithOptions модуля AppDelegate

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        UIDevice.current.isBatteryMonitoringEnabled = true
        return true
    }
person Mickael Belhassen    schedule 15.11.2020
comment
Нет, тестирование на реальном устройстве сработало. Симулятор всегда возвращает -1.0 - person Sarvesh Sridhar; 16.11.2020