Geben Sie Intervalle für Location Manager Broadcast aktuellen Standort in Android
-
23-09-2019 - |
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
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