簡體   English   中英

如何在 iOS 中以編程方式禁用/啟用睡眠模式?

[英]How to disable/enable the sleep mode programmatically in iOS?

我有一個應用程序必須在倒計時結束前保持喚醒狀態,但只要達到分配的睡眠時間,它就會進入“睡眠模式”。

在我的應用程序中,我可以選擇推遲睡眠,以便用戶可以禁用/啟用它。

我如何以編程方式做到這一點?

您可以按如下方式禁用空閑計時器;

在 Objective-C 中:

[UIApplication sharedApplication].idleTimerDisabled = YES;

在斯威夫特:

UIApplication.sharedApplication().idleTimerDisabled = true

在 Swift 3.0 和 Swift 4.0 中:

UIApplication.shared.isIdleTimerDisabled = true

將其設置回NOfalse以重新啟用睡眠模式。

例如,如果您在離開視圖之前需要它,您可以通過覆蓋 viewWillDisappear 將其設置回來:

override func viewWillDisappear(_ animated: Bool) {
    UIApplication.shared.isIdleTimerDisabled = false
}

更多關於UIApplication 類

在 Swift 3 中,要禁用空閑計時器,現在是:

UIApplication.shared.isIdleTimerDisabled = true

重新打開空閑計時器很簡單:

UIApplication.shared.isIdleTimerDisabled = false

此外,請注意YESNO在 Swift 中不可用,您必須使用truefalse (與之前的答案相反)。

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 中,可以完成此操作的確切位置是AppDelegate.swift - 您應該在application func 中添加UIApplication.shared.isIdleTimerDisabled = true因此結果將如下所示:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM