lajos
lajos

Reputation: 25705

How do I prevent the iPhone screen from dimming or turning off while my application is running?

I'm working on an app that requires no user input, but I don't want the iPhone to enter the power saving mode.

Is it possible to disable power saving from an app?

Upvotes: 127

Views: 28922

Answers (6)

Synthesis
Synthesis

Reputation: 524

To keep the screen on using Kotlin Multiplatform (KMP) you can use Kotlin/Native in iosMain:

import platform.UIKit.UIApplication

UIApplication.sharedApplication.idleTimerDisabled = true

Upvotes: 0

lajos
lajos

Reputation: 25705

Objective-C

[[UIApplication sharedApplication] setIdleTimerDisabled:YES];

Swift

UIApplication.shared.isIdleTimerDisabled = true

Upvotes: 186

Charlie S
Charlie S

Reputation: 4594

Swift 3:

UIApplication.shared.isIdleTimerDisabled = true

Upvotes: 12

Vettiyanakan
Vettiyanakan

Reputation: 8470

In swift you can use this as

UIApplication.sharedApplication().idleTimerDisabled = true

Upvotes: 22

JMStudios.jrichardson
JMStudios.jrichardson

Reputation: 416

We were having the same issue. Turned out to be a rogue process on our MDM server that was deleted in our account but on the server was still sending the command to dim our devices.

Upvotes: 0

JMStudios.jrichardson
JMStudios.jrichardson

Reputation: 416

I have put this line of code in my view controller yet we still get customers saying the screen will dim or turn off until someone touches the screen. I have seen other posts where not only do you programatically set

UIApplication.sharedApplication().idleTimerDisabled = true 

to true but you must reset it to false first

UIApplication.sharedApplication().idleTimerDisabled = false
UIApplication.sharedApplication().idleTimerDisabled = true

Sadly this still did not work and customers are still getting dimmed screens. We have Apple Configurator profile preventing the device from going to sleep, and still some devices screen go dim and the customer needs to press the home button to wake the screen. I now put this code into a timer that fires every 2.5 hours to reset the idle timer, hopefully this will work.

Upvotes: 2

Related Questions