web-dev-qa-db-fra.com

Comment désactiver le verrouillage automatique de l'iPhone/iPad lorsque l'application est en mode avant-plan?

Je développe une application de lecteur de musique/vidéo et je dois juste savoir comment désactiver le verrouillage automatique pendant que mon application est au premier plan.

Je sais que je dois utiliser [[UIApplication sharedApplication] setIdleTimerDisabled:YES]; et [[UIApplication sharedApplication] setIdleTimerDisabled:NO]; à un moment donné, mais quel est le meilleur endroit pour les mettre?

29
jMelnik

Activer la minuterie d'inactivité dans

- (void)applicationWillResignActive:(UIApplication *)application

et le désactiver dans

- (void)applicationDidBecomeActive:(UIApplication *)application
24
Erik Aigner

Le meilleur endroit pour le désactiver est dans didFinishLaunchingWithOptions. Le système se chargera automatiquement de faire en sorte que le réglage n'ait aucun effet lorsque l'application est en arrière-plan.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    application.idleTimerDisabled = YES; 
    return YES;
}

J'ai posté cette alternative parce que la réponse acceptée n'empêche pas le verrouillage automatique lorsqu'une alerte apparaît (courrier électronique, message, événement de calendrier, etc.) ou que le centre de notification ou le centre de contrôle est activé.

8
malhal

Swift 3.0:

Dans AppDelegate.Swift: application.idleTimerDisabled = true

En dehors de AppDelegate.Swift: UIApplication.shared().isIdleTimerDisabled = true

3
Crashalot

Et dans Swift 3.0:

UIApplication.shared().isIdleTimerDisabled = true
1
Lukl

mes 2 centimes: pour xcode 9:

 application.idleTimerDisabled = true

..... AppDelegate.Swift: 28: 15: 'idleTimerDisabled' a été renommé en 'isIdleTimerDisabled'

alors:

application.isIdleTimerDisabled = true
1
ingconti