Alle x Sekunden Standort abfragen

F

fml

Neues Mitglied
Thread Starter
Dabei seit
17.03.2010
Beiträge
5
Reaktionspunkte
0
Hi,

ich möchte gerne alle x Sekunden den aktuellen Standort abfragen.

Code:
- (void)getUpdate {
    [locationManager startUpdatingLocation];
    hasUpdated = false;
    while (!hasUpdated) {
        sleep(1);
    }
    [locationManager stopUpdatingLocation];
}


- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:
(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
doSomething();
}

getUpdated wird per NSTimer regelmäßig aufgerufen, das klappt auch wie es soll.
startUpdatingLocation klappt auch, nur wird didUpdateToLocation nie aufgerufen.

Wenn ich nun

Code:
- (void)getUpdate {
    [locationManager startUpdatingLocation];
    hasUpdated = false;
       sleep(1);
    [locationManager stopUpdatingLocation];
}

benutze, kommen zwar locations an, allerdings bekommt man ja nicht jede Sekunde eine location, je nach GPS-Empfang auch mal schneller oder langsamer.

Was mache ich falsch?
 
Setzt du hasUpdated auch irgendwo mal auf was anderes als false?
 
Setzt du hasUpdated auch irgendwo mal auf was anderes als false?

Sorry.


Code:
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:
(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
hasUpdated = true;
doSomething();
}

Das hat aber ja nicht direkt was mit dem Problem zu tun. Es müsste ja selbst dann zumindest ein locationUpdate kommen.
 
Ja. Du bekommst nur ein Update, wenn es ein Update gibt. Warum willst Du es jede Sekunde wissen?

Du musst es Dir einfach merken.

Alex
 
Du brauchst gar nicht abfragen, du hast ja ein Delegate:
locationManager:(CLLocationManager *)manager didUpdateToLocation:
Wenn was neues kommt wird es aufgerufen.
 
Und die Häufigkeit (wegen Stromsparen) kannst Du einstellen -- das heisst dann aber Genauigkeit: desiredAccuracy

Alex
 
Du brauchst gar nicht abfragen, du hast ja ein Delegate:
locationManager:(CLLocationManager *)manager didUpdateToLocation:
Wenn was neues kommt wird es aufgerufen.
Sorry. Falsch formuliert. Ich möchte gerne alle x Minuten das Location-Updating starten, darauf warten dass didUpdateToLocation aufgerufen wird, und dann das Location-Updating für die nächsten x Minuten wieder ausschalten.

Und die Häufigkeit (wegen Stromsparen) kannst Du einstellen -- das heisst dann aber Genauigkeit: desiredAccuracy
Alex
Darum geht es mir nicht. Ich möchte das Location updating nur alle x Minuten kurz anstellen, danach wieder beenden.
 
startUpdatingLocation und stopUpdatingLocation

Alex
 
So, hier einfach mal ein Beispielprojekt, das nach dem ersten Tastendruck alle 10 Sekunden ein Update macht:

Alex
 
Zurück
Oben Unten