2010-05-12 17 views
1

Pour les situations normales, le didUpdateToLocation (de CLLocationManager) ne fonctionne plus lorsque le bouton verrouillage/veille est poussé et votre application ne peut pas obtenir d'autres coordonnées newLocation pendant la période verrouillée. Cependant, certaines applications peuvent effectuer le suivi pendant la période verrouillée, et elles afficheront l'itinéraire correct lorsque vous serez déverrouillé et verrez le Mapview. Évidemment, il existe des moyens d'obtenir les coordonnées pendant la période verrouillée.Comment obtenir les coordonnées lorsque l'iPhone est verrouillé/en veille?

Comment obtenir les coordonnées lorsque l'iPhone est verrouillé/en veille?

Qui a des indices et plus d'infos, s'il vous plaît poste. Merci.

Répondre

2

Lorsque l'iPhone l'a verrouillé (rapidement mais pas instantanément) entre dans un sommeil profond qui arrête tout. Afin d'éviter le sommeil profond, il y a un truc ...

Jouez un son silencieux toutes les 5 secondes. (Honnête!) Mettre en place un petit fichier WAV silencieux (ou n'importe quel format) et le jouer sur une minuterie. Le téléphone n'entrera jamais en sommeil profond et CLLocationManager continuera à fonctionner comme prévu.

+0

Merci beaucoup pour cette astuce intéressante! Je lis ce fil maintenant: http://www.iphonedevsdk.com/forum/iphone-sdk-development/39150-playing-silent-sound-keep-away-deep-sleep.html – lionfly

+0

le code DeepSleepPreventer ressemble beaucoup à le code que j'ai utilisé. Cela fonctionne, malgré quelques-uns des commentaires de cet article. – Andiih

1

Une autre façon de le faire en iOS4 +, sans utiliser la méthode de lecture-son-silencieux:

Ajouter

<key>UIBackgroundModes</key> 
    <array> 
     <string>location</string> 
    </array> 

dans votre info.plist. Pour plus de détails: UIBackgroundModes

+0

Lionfly, cela va aussi empêcher le sommeil profond? – BadPirate

+0

Je pense que c'est encore "Sommeil profond" pour d'autres actions. Apple autorise uniquement les actions "location, voip, audio" à s'exécuter en arrière-plan de cette manière. Pour les autres actions, vous devrez toujours utiliser le truc "jouer du son silencieux", qui est un fardeau pour l'application et la batterie. – lionfly