2017-05-04 2 views
3

Beim Einrichten der Empfangsort-Aktualisierung mit LocationServices.FusedLocationApi.requestLocationUpdates muss ich sicherstellen, dass ich mindestens einen Standort bekomme.Wird mindestens ein Standort von den Standortdiensten nach dem Aufruf von requestLocationUpdates gesendet?

Zum Beispiel, wenn das Gerät noch für eine lange Zeit war, nach dem Aufruf LocationServices.FusedLocationApi.requestLocationUpdates feuert es mit dem letzten bekannten Ort? Oder muss ich auch LocationServices.FusedLocationApi.getLastLocation anrufen?

Antwort

1

Meiner Erfahrung nach müssen Sie LocationServices.FusedLocationApi.getLastLocation() aufrufen, um ein sofortiges Standortobjekt zu garantieren, und selbst diese Methode gibt null direkt nach dem Neustart des Geräts zurück.

LocationServices.FusedLocationApi.requestLocationUpdates() erhalten Sie einen Rückruf mit einem Standort, wenn ein neuer oder relativ neuer Standort verfügbar ist, der Ihren Anforderungsparametern in Bezug auf Genauigkeit, Energie usw. entspricht, aber wenn kein Standort verfügbar ist, der Ihren Parametern entspricht nicht für eine Weile zurückrufen. Wenn Sie beispielsweise einen Standort mit hoher Genauigkeit anfordern, der GPS erfordert und das GPS kürzlich nicht verwendet wurde und die Geräte sich an einem Ort befinden, der den GPS-Signalempfang verhindert, wird möglicherweise kein Rückruf angezeigt, bis das Gerät wieder GPS-Signale empfängt.

+0

Danke. Also meinst du, ich muss 'getLastLocation' aufrufen? Habe diese Anforderung nicht gelesen. –

+0

Für Ihre beste Chance auf einen sofortigen Standort, ja. –

Verwandte Themen