Warum hat Android solche Probleme, sich an den letzten bekannten Ort zu erinnern?

12

Ich habe noch nie herausgefunden, wie Android sich an seinen letzten bekannten Ort erinnert. Scheint, sich an den Ort vor einigen Stunden, aber nicht vor einigen Sekunden zu erinnern. Ich denke, es ist am besten, ein Beispiel dafür zu geben, was ich meine.

Ich war vor kurzem in der Bay Area. Ich habe Google Maps auf meinem Android-Gerät verwendet und war zufällig in der Nähe des Google Campus in Mountain View. Ich habe Karten mit aktiviertem GPS verwendet und nach einer Weile ein richtiges GPS-Schloss erhalten, mit dem ich mich in der Gegend zurechtgefunden habe.

Als ich später nach San Francisco zurückkehrte, benutzte ich es, um in der Stadt herumzukommen. Jedes Mal, wenn ich die Karten einschaltete, war mein Standort wieder in Mountain View. Ungefähr 10 Sekunden später, nachdem es das GPS-Schloss erhalten hatte, erhielt ich meinen tatsächlichen Standort. Wenn ich das Telefon ein paar Sekunden später aus- und wieder einschaltete, geschah das Gleiche - es scheint, dass ich mich an einem Ort befinde, an dem ich Stunden zuvor war, und dann mit meinem tatsächlichen Standort beginnt. Das passiert die ganze Zeit - wenn ich mich erinnere, wo ich vor Stunden war, nicht wo ich vor ein paar Augenblicken war. Nachdem ich eine bestimmte Zeit in einem Gebiet verbracht habe, wird dies nun der neue "letzte bekannte Ort".

Warum registriert Android, sobald ich eine genaue GPS-Sperre erhalte, diese nicht mehr als den "letzten bekannten Ort", sondern als einen früheren?

Tim
quelle

Antworten:

3

Keine vollständige Antwort, aber einige Hintergrundinformationen:

  • Ihr Gerät kann mehr als einen Standortanbieter haben, z. B. einen basierend auf GPS und einen basierend auf den Mobilfunkmasten, die es sehen kann.
  • Android hat keine einzige letzte bekannte Position. Jeder Standortanbieter hat seine letzte bekannte Position.
  • Ein Ort hat zusätzliche Metriken, wie Genauigkeit, wann er aufgezeichnet wurde, was aufgezeichnet wurde (z. B. hat er eine Höhenkomponente usw.)

Es hängt also davon ab, welchen Standortanbieter die App verwendet. Dies kann von dynamischen Parametern abhängen oder sich sogar ändern. Beispielsweise könnte Android beim Start aufgefordert werden, den schnellsten Standortanbieter zu finden, und dann auf den genauesten wechseln, um nach und nach eine bessere Lösung zu finden.

user4188
quelle
Dies ist eine wirklich gute, prägnante Erklärung. Vielen Dank.
Nick Dixon
Dies macht auch Sinn, als ich zurück in der Stadt war, hatte ich keine WiFi / mobile Daten. Auf dem Google-Campus gab es WLAN. Karten müssen also zuerst die "grobe" (dh wifi) letzte bekannte Position verwendet haben (die in Google war) und dann, wenn das GPS ein paar Sekunden später kickte, aktualisiert. Ich hätte immer noch gedacht, dass die GPS-Ortung eine frischere / bessere Lesung gewesen wäre.
Tim
Diese Antwort ist eher ein Kommentar. und wenn eine grobe Position weniger Priorität hat, würde dies noch weniger erklären, warum das Telefon später mnt view zurückgegeben hat.
GCB
2

Ich verstehe, dass Android grobe und feinkörnige Standortaktualisierungen verwendet und diese Aktualisierungen auch unterschiedliche Qualitätsmetriken aufweisen können. Möglicherweise verfügte die Google Maps-Anwendung an Ihrem neuen Standort nicht über ausreichend langes GPS- und WLAN-Signal, um die Qualität des letzten bekannten Standorts zu gewährleisten.

Die Entwicklerdokumentation unter http://developer.android.com/guide/topics/location/obtaining-user-location.html enthält einige Beispielmodelle zum Abrufen von Benutzerpositionen, die möglicherweise einen Einblick in die Funktionsweise geben. Aber ich würde vermuten, dass Google Maps und wahrscheinlich auch andere Karten ihr eigenes Ding machen.

Andy Shinn
quelle