как получить доступ к уровню заряда батареи устройства с экрана блокировки - PullRequest
0 голосов
/ 30 августа 2018

Я пытался повторить эту функцию, найденную в следующем приложении: Зарядка тревоги

У меня вопрос, как они могут получить доступ к уровню заряда батареи устройства, когда экран заблокирован, а приложение находится в фоновом режиме?

Они отправляют уведомления, когда приложение находится в фоновом режиме. И они отправляют это уведомление, когда устройство достигает определенного уровня заряда батареи.

ПРИМЕЧАНИЕ: Они не могут сделать это, если приложение переводится в фоновое состояние нажатием кнопки «Домой». Но если пользователь блокирует экран, когда приложение активно, эта функция работает очень хорошо.

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Я прошел этот этот урок

и это, кажется, работает отлично. Я сделал только одно изменение, то есть в файле info.plist я добавил новое свойство Application does not run in background и присвоил ему значение YES.

0 голосов
/ 30 августа 2018

Я не уверен, что вы можете получить эту информацию на экране блокировки:

Позвольте мне рассказать вам весь процесс Как достичь точно такой же функциональности который есть в приложении Charge Alarm Это действительно просто : Следуйте за этим: ??

Шаг 1:
Вам нужно установить Background Fetch ON в возможностях вашего проекта,

Шаг 2:

Включение контроля батареи: UIDevice.current.isBatteryMonitoringEnabled = true в вашем AppDelegate.

Шаг 3:

Получить уровень заряда батареи:

var batteryLevel : Float {
    get {
          return UIDevice.current.batteryLevel 
        } 
    }
}

Шаг 4: Добавьте Observer в viewDidLoad() вашего BaseViewController или любого другого ViewController:

    override func viewDidLoad(_ animated: Bool) {
        super.viewDidLoad()
        NotificationCenter.default.addObserver(self, selector: #selector(batteryLevelDidChange(_:)), name: NSNotification.Name.UIDeviceBatteryLevelDidChange, object: nil)
      }
     func batteryLevelDidChange(_ notify:Notification){
          // write code to post a local notification on lock screen with text like :  " YOUR DEVICE IS NOW AT xx% "
      }

Теперь для настройки фоновых режимов: См. Это

Шаг 5:

Для локальной настройки уведомлений: См. Это

Вот и все, вы создали ту же функциональность, если у вас есть какие-либо проблемы, и я отвечу как можно раньше.

...