Frage

Gibt es eine Möglichkeit, die Zeitintervalle festlegen, dass der Standort-Manager den aktuellen Standort sendet?

Ich verwende eine Methode namens startListening:

public void startListening() {
        locationManager.requestLocationUpdates(
                LocationManager.GPS_PROVIDER, 
                0, 
                0, 
                this
        );
}

Danke

War es hilfreich?

Lösung

public void requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener, Looper looper)

Register die aktuelle Aktivität in regelmäßigen Abständen von den benannten Anbieter mitgeteilt werden. In regelmäßigen Abständen wird die mitgelieferte Location mit dem aktuellen Standort oder Status-Updates aufgerufen werden.

Es kann eine Weile dauern, die letzte Stelle zu erhalten. Wenn eine unmittelbare Lage erforderlich ist, können Anwendungen, die die getLastKnownLocation (String) Methode verwendet werden.

Falls der Anbieter durch den Benutzer deaktiviert ist, werden die Updates zu stoppen, und die onProviderDisabled(String) Methode aufgerufen. Sobald der Anbieter wieder aktiviert ist, wird die onProviderEnabled (String) -Methode aufgerufen und Standortaktualisierungen wieder gestartet werden.

Die Häufigkeit der Benachrichtigung gesteuert werden kann, die minTime und minDistance Parameter angeben können. Wenn minTime größer als 0 ist, ruhen die Locationmanager könnte möglicherweise für minTime Millisekunden zwischen Standortaktualisierungen Um Energie zu sparen. Wenn minDistance größer als 0 ist, wird ein Standort nur dann, wenn die Vorrichtung bewegt von minDistance Metern übertragen. Um Benachrichtigungen so oft wie möglich zu erhalten, setzen Sie beide Parameter auf 0 fest.

Hintergrunddienste sollten über die Einstellung einer ausreichend hohen minTime vorsichtig sein, so dass das Gerät nicht zu viel Strom verbraucht, indem die GPS oder Funkfunktionen auf dem die ganze Zeit zu halten. Insbesondere Werte unter 60000ms werden nicht empfohlen.

Die mitgelieferte Looper wird die Callback-Mechanismus zu implementieren.

Parameter

  • Anbieter der Name des Anbieters mit denen registrieren
  • MINTIME die Mindestzeitintervall für Benachrichtigungen, in Millisekunden. Dies Feld wird nur als Hinweis verwendet, um Stromspar und aktuelle Zeit zwischen Standortaktualisierungen können mehr oder weniger als dieser Wert.
  • MinDistance der Mindestabstand Intervall für Benachrichtigungen, in Metern
  • Hörer ein, dessen OnLocationChanged (Ort) Verfahren wird für jeden aufgerufen werden Standortaktualisierung
  • Looper ein Looper Objekt, dessen Nachrichtenwarteschlange wird verwendet, um den Rückruf zu implementieren Mechanismus.

Wirft

IllegalArgumentException wenn Provider null ist oder nicht existiert
IllegalArgumentException wenn Zuhörer null ist
IllegalArgumentException wenn Looper null
SecurityException wenn keine geeignete Berechtigung vorhanden ist für den Anbieter.

Andere Tipps

MINTIME: das minimale Zeitintervall für Benachrichtigungen, in Millisekunden . Dieses Feld wird nur als Hinweis auf Stromspar verwendet, und tatsächliche Zeit zwischen Standortaktualisierungen kann als dieser Wert größer oder kleiner sein.

MinDistance: der Mindestabstand Intervall für Benachrichtigungen, in m

    locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 9000, 500,locListener);

// 60000 ist 1 Minute und 100 KM

Vor Sie haben 9000 (neun Sekunden) und 500, die ist, wenn der Standort mehr als 500 km bewegt hat

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