[ios] iOS에서 프로그래밍 방식으로 절전 모드를 비활성화 / 활성화하는 방법은 무엇입니까?

카운트 다운이 끝날 때까지 깨어 있어야하는 앱이 있지만 할당 된 수면 시간에 도달 할 때마다 ‘수면 모드’로 전환됩니다.

내 앱에는 수면을 연기하는 옵션이 있으므로 사용자가 비활성화 / 활성화 할 수 있습니다.

프로그래밍 방식으로 어떻게합니까?



답변

다음과 같이 유휴 타이머를 비활성화 할 수 있습니다.

Objective-C에서 :

[UIApplication sharedApplication].idleTimerDisabled = YES;

스위프트에서 :

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 클래스 .


답변

Swift 3에서 유휴 타이머를 비활성화하려면 다음과 같습니다.

UIApplication.shared.isIdleTimerDisabled = true

유휴 타이머를 다시 켜는 방법은 다음과 같습니다.

UIApplication.shared.isIdleTimerDisabled = false

또한, 참고 YESNO스위프트에서 사용할 수없는 당신이 중 하나를 사용해야 true하거나 false(이전 대답 반대).


답변

유휴 타이머를 비활성화하려면 iOS 13, Swift 5,5.1 이상 . 에서 SceneDelegate.swift.

 func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
     UIApplication.shared.isIdleTimerDisabled = true
 }


답변

Swift 3 에서이 작업을 수행 할 수있는 정확한 위치 -func 내부 AppDelegate.swift를 추가해야 결과가 다음과 같이 표시됩니다.UIApplication.shared.isIdleTimerDisabled = trueapplication

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    UIApplication.shared.isIdleTimerDisabled = true
    return true
}


답변