[**THIS ISSUE HAS BEEN SOLVED. Not sure what was happening earlier, but running
[[UIApplication sharedApplication] setIdleTimerDisabled: NO]; now seems to be working]
I’m creating an iOS app using open frameworks (to run on an iPad with iOS 7.1). The app will be on display for a show, running eight hours a day for three days. I’ll be running the app in guided access mode so that I can deactivate the device’s home button and not allow gallery visitors to quite the app. But I’d like the screen to automatically shut off when the app hasn’t been used for a while, so as to avoid screen burn and give the device a chance to rest.
(Is screen burn a problem on the iPad? I’ve not been able to find a definitive answer, but there is some evidence to suggest it is and I’d rather be safe than sorry. If you have reason to believe that screen burn is NOT a problem on the iPad, I’d be very interested in hearing more about it.)
The autolock setting in the OS is set to two minutes, but when the app is running, it never seems to be detected as “idle” by the device, even when the device isn’t being touched or moved–this is true in guided access or not.
I’ve tried running this code in main.mm:
[[UIApplication sharedApplication] setIdleTimerDisabled: NO];
but it doesn’t seem to make a difference.
Apple describes an app’s “inactive” state like this:
The app is running in the foreground but is currently not receiving events. (It may be executing other code though.) An app usually stays in this state only briefly as it transitions to a different state.
…which makes me wonder about whether the solution lies in disabling events? I’m not quite sure how to do that, though. This tutorial might be the answer, but before diving into more objective-C than I really have time for, is there an easier way?
Any suggestions would be very much appreciated!