Android locationManager.requestlocationupdates mit Mintime> 0 funktioniert nicht wie erwartet

StackOverflow https://stackoverflow.com/questions/4245193

  •  27-09-2019
  •  | 
  •  

Frage

ich setze

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 0f, this);

Es hat ein seltsames Verhalten, StandortChanged wird jede Sekunde anstelle einer Zeit in der Nähe von 1 Minute aufgerufen. Zweitens wird locationChanged jede Sekunde für ungefähr 10 Sekunden aufgerufen, dann wird das GPS -Satalites -Symbol vollständig angehalten und wieder aufgenommen, wenn der Bildschirm vom Display -Timeout zurückkehrt.
was ist los?

Ich bin derzeit auf Android 1.5.

War es hilfreich?

Lösung

Der Mintime (60000) ist nur ein Hinweis, und es gibt keine Garantie dafür, dass Ihr Standortlistener in einem genauen Intervall von 1 Minute einnimmt. In Kombination mit der Mindistance = 0 erhalten Sie wahrscheinlich viel mehr Updates.

Ich würde die Mindistanz auf 1 m Minimum erhöhen und die Vergütungslogik implementieren, um das 1 -minütige Intervall in Ihrem Code zu erreichen. Sie locationListener können so implementiert werden, dass, wenn Standortaktualisierungen zu genau folgen, sie ignoriert und nicht verarbeitet werden.

Sie erhalten auch verschiedene Orte über Ihren Standorthörer mit einer anderen Genauigkeit in diesem winzigen Intervall.

Ihr Standorthörer kann die beste Genauigkeit auswählen und sich daran erinnern, wann der letzte Standort durch die Aufrechterhaltung des Staates (LastLocation Processedat) verarbeitet wurde.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top