2009-11-29 9 views
0

Existe-t-il un événement lorsque l'utilisateur appuie sur le bouton de veille?bouton veille iPhone

Je peux désactiver la «veille automatique» (autolock) - ce que je fais parce que mon application est une sorte d'application de routage.

Mais qu'en est-il du bouton de veille? Le problème - si l'iPhone passe en veille, le GPS est éteint. Donc, mon application pense qu'il a un problème de GPS. C'est en fait faux - c'est seulement en attente ce qui signifie qu'une manipulation différente devrait être faite comme si je le fais quand des problèmes de GPS se produisent en "mode courant" (les utilisateurs voient l'application).

Je ne pouvais pas trouver un événement pour cette situation (ne va veille - ni awaiking de celui-ci)

Répondre

2

Vous devez écouter ces 2 notifications:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appLostFocus:) name:UIApplicationWillResignActiveNotification object:[UIApplication sharedApplication]]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appGotFocus:) name:UIApplicationDidBecomeActiveNotification object:[UIApplication sharedApplication]]; 

et les traiter de façon appropriée:

- (void)appLostFocus:(NSNotification*)notification 
{ 
    NSLog(@"app lost focus"); 
} 

- (void)appGotFocus:(NSNotification*)notification 
{ 
    NSLog(@"app got focus"); 
} 

Pour désactiver l'auto-veille tout mettre en œuvre dans votre principal délégué de l'application:

- (void)applicationDidFinishLaunching:(UIApplication *)application { 

    [[UIApplication sharedApplication] setIdleTimerDisabled:YES]; 

//... 
} 
+0

Merci pour cela - le seul problème - ces événements se déclenchent également quand un appel téléphonique arrive. Mais je peux gérer cela avec une minuterie. – ManniAT