onLocationChanged gibt immer den alten Speicherort zurück

8

Ich habe meinen LocationManager für Standortaktualisierungen alle zehn Sekunden registriert

%Vor%

Aber der onLocationChanged -Rückruf gibt alle 10 Sekunden einen Ort zurück, der (der Ort) mehr als 2 Stunden alt ist. Und dieser Zeitstempel ändert sich nie.

Das Problem ist:

2 Stunden zurück Ich war an einem komplett anderen Ort ( Zuhause ), wo ich das Gerät auf einem Wifi benutzt habe. Jetzt bin ich an einem anderen Ort ( Büro ) auf einem anderen WLAN, wo meine Anwendung meinen aktuellen Standort als home anzeigt. Dasselbe passierte gestern bei home , als office als mein aktueller Standort angezeigt wurde. Es funktionierte (ich habe den korrekten Standort angezeigt), als ich meine App schloss, die App FourSquare öffnete und meine App wieder öffnete.

Vollständiger Code:

%Vor%

Wird auf diese Weise in einer Aktivität gestartet:

%Vor%

Berechtigungen im Manifest:

%Vor%

Ich kann jetzt den richtigen Ort finden, indem ich eine andere ortsbasierte App wie Maps, Navigator, Foursquare usw. öffne. Aber warum meine App keine neue / frische Reparatur vom Provider bekommen kann.

>

Danke

    
Archie.bpgc 28.03.2013, 06:25
quelle

2 Antworten

5

Sie werden wegen dieser Zeile alt.

%Vor%

, wenn GPS nicht aktiviert ist, zeigt es Ihnen den alten Standort an. Also entferne diesen Code Es wird wie ein Champion funktionieren Sie können auch auf diese Bibliothek verweisen

Ссылка

Auf Grund Ihrer Kommentare habe ich die Antwort bearbeitet. Okay. Lassen Sie mich Zeile für Zeile erklären    location = mgr.getLastKnownLocation(best); es wird Ihnen das Objekt des letzten bekannten Ortes geben, dann wird es nach innen gehen, wenn es Bedingung ist und es wird dumplocation aufrufen und die letzten Standortdaten erhalten und danach haben Sie

aufgerufen %Vor%

Nehmen Sie jedoch an, dass der GPS-Provider deaktiviert ist. Dann wird kein neuer Standort abgerufen, sodass Sie nur den alten Standort erhalten. Also kannst du es entweder wie

ändern %Vor%     
Naga 28.03.2013, 06:36
quelle
0

Ich denke, da Sie Ihre ausstehende Absicht sofort abbrechen, würde das requestLocationUpdate die Aktualisierung nicht starten, bevor Sie abbrechen. Warum schläfst du nicht für 2 Sekunden vor dem Abbrechen?

    
Hoan Nguyen 28.03.2013 06:47
quelle

Tags und Links