web-dev-qa-db-fra.com

Désactiver le verrouillage automatique de l'écran dans iOS 5.1

La ligne de code suivante empêche l'application de verrouiller automatiquement l'écran après une période d'inactivité.

[UIApplication sharedApplication].idleTimerDisabled = YES; //write this in applicationDidFinishLaunching

Cela fonctionne bien jusqu'à iOS 5.0 . Mais iOS 5.1 ne respecte pas cette ligne et verrouille l'écran après un temps d'inactivité . Comment résoudre ce problème irritant?

Merci.

Modifier:

Le même code fonctionne bien lorsqu'il est installé dans le périphérique 5.0.1. Mais je ne sais pas pourquoi il ne fonctionne pas avec le périphérique 5.1.

38
Selvin

Il suffit de mettre [UIApplication sharedApplication].idleTimerDisabled = YES; dans 

- (BOOL) application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions

fonctionne bien pour moi. Cependant, il y a une mise en garde. J'ai remarqué que chaque fois que j'appelle l'utilitaire de caméra pour prendre un instantané, idleTimerDisable est défini surNOen arrière-plan. Donc, juste après avoir téléchargé mon image, je devais appeler à nouveau la ligne de code suivante: 

[UIApplication sharedApplication].idleTimerDisabled = YES;

Je ne serais pas surpris s'il y a plus d'endroits qui exigent la même stratégie. Jusqu'à présent, cette approche a fonctionné sans problème pour moi.

24
Aki
[[UIApplication sharedApplication] setIdleTimerDisabled: YES];

a travaillé pour moi sur iOS 5.1

25
orkoden

Important: Vous ne devez définir cette propriété que si cela est nécessaire et assurez-vous de la réinitialiser sur NO lorsque le besoin n'existe plus. Plus les applications doivent laisser le système éteindre l’écran lorsque celui-ci est inactif le temps est écoulé. Cela inclut les applications audio. Avec une utilisation appropriée des services de session audio, la lecture et l’enregistrement continuent sans interruption lorsque l'écran s'éteint. Les seules applications qui devrait désactiver le minuteur inactif pour les applications de mappage, les jeux ou programmes similaires avec interaction utilisateur sporadique.

Peut-être que vous dépassez la limite de temps autorisée pour être réveillé?

3
jacekmigacz

je sais que c'est vieux, mais j'ai trouvé ça bon et à Swift tu peux le faire ressembler à ça

application.idleTimerDisabled = true

Merci pour vos réponses! J'utilise maintenant xcode 7 Beta 3 (Swift 2)

1
ParisNakitaKejser

Fonctionne correctement si votre application est enregistrée pour une tâche d’arrière-plan, par exemple la mise à jour de la localisation GPS.

0
tomislav

Pour Swift, je l’utilise pour faire en dehors du délégué: 

    UIApplication.sharedApplication().idleTimerDisabled = true
0
Werner Kratochwil