Как отключить/включить режим сна в программном обеспечении iOS?
У меня есть приложение, которое должно бодрствовать до конца обратного отсчета, но оно переходит в "спящий режим", когда оно достигает выделенного времени для сна.
В моем приложении у меня есть возможность отложить спящий режим, поэтому пользователи могут отключить/включить его.
Как это сделать программно?
Ответы
Ответ 1
Вы можете отключить таймер простоя следующим образом:
В Objective-C:
[UIApplication sharedApplication].idleTimerDisabled = YES;
В Swift:
UIApplication.sharedApplication().idleTimerDisabled = true
В Swift 3.0 & Swift 4.0:
UIApplication.shared.isIdleTimerDisabled = true
Установите его на NO
или false
, чтобы снова включить спящий режим.
Например, если вам это нужно до тех пор, пока вы не покинете вид, вы можете вернуть его обратно, переопределив viewWillDisappear:
override func viewWillDisappear(_ animated: Bool) {
UIApplication.shared.isIdleTimerDisabled = false
}
Подробнее о классе UIApplication.
Ответ 2
В Swift 3, чтобы отключить таймер простоя, он теперь:
UIApplication.shared.isIdleTimerDisabled = true
Чтобы снова включить таймер простоя, просто:
UIApplication.shared.isIdleTimerDisabled = false
Кроме того, обратите внимание, что YES
и NO
недоступны в Swift и что вы должны использовать либо true
, либо false
(в отличие от предыдущего ответа).
Ответ 3
в точном месте Swift 3, где это можно сделать, это AppDelegate.swift
- вы должны добавить UIApplication.shared.isIdleTimerDisabled = true
внутри application
func, поэтому результат будет выглядеть так:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
UIApplication.shared.isIdleTimerDisabled = true
return true
}