Especificar los intervalos de Administrador de ubicaciones a la ubicación actual transmitido en Android
-
23-09-2019 - |
Pregunta
¿Hay alguna manera de especificar los intervalos de tiempo que el Administrador de ubicaciones transmite la ubicación actual?
Estoy utilizando un método llamado startListening:
public void startListening() {
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
0,
0,
this
);
}
Gracias
Solución
public void requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener, Looper looper)
Registra la actividad actual para ser notificado periódicamente por el proveedor de llamada. Periódicamente, el LocationListener suministrado será llamada con la ubicación actual o con las actualizaciones de estado.
Se puede tomar un tiempo para recibir la ubicación más reciente. Si se requiere una localización inmediata, las aplicaciones pueden utilizar el método getLastKnownLocation (String).
En caso de que el proveedor está deshabilitada por el usuario, las actualizaciones se detendrá, y el método onProviderDisabled(String)
será llamado. Tan pronto como el proveedor se habilita de nuevo, se llamará al método onProviderEnabled (String) y actualizaciones de ubicación se iniciará de nuevo.
La frecuencia de notificación puede ser controlado utilizando los parámetros minTime
y minDistance
. Si minTime
es mayor que 0, el LocationManager potencialmente podría reposar durante milisegundos minTime
entre las actualizaciones de ubicación para poder conservar. Si minDistance
es mayor que 0, una ubicación única será transmitido si el dispositivo se mueve por metros minDistance
. Para obtener notificaciones la mayor frecuencia posible, ajustar ambos parámetros a 0.
Servicios en segundo plano debe tener cuidado acerca de cómo establecer un nivel suficientemente alto minTime
manera que el dispositivo no consume demasiada energía al mantener el GPS o radios inalámbricas en todo el tiempo. En particular, no se recomiendan valores bajo 60000ms.
El Looper suministrado se utiliza para implementar el mecanismo de devolución de llamada.
Parámetros
- proveedor el nombre del proveedor con la que registrar
- MinTime la intervalo de tiempo mínimo para notificaciones, en milisegundos. Esta campo sólo se utiliza como una sugerencia para conservar la energía, y el tiempo real entre las actualizaciones de localización pueden ser mayor o menor que este valor.
- minDistance la distancia mínima intervalo para notificaciones, en metros
- oyente una cuya onLocationChanged (Localización) método será llamado para cada actualización de la ubicación
- looper un looper objeto cuya cola de mensajes será utilizado para implementar la devolución de llamada mecanismo.
Lanza
IllegalArgumentException
si el proveedor es nulo o no existe
IllegalArgumentException
si oyente es nula
IllegalArgumentException
si looper es nula
SecurityException
si no tiene permiso adecuado está presente para el proveedor.
Otros consejos
MinTime: el intervalo de tiempo mínimo para las notificaciones, en milisegundos . Este campo sólo se utiliza como una sugerencia para poder conservar y tiempo real entre las actualizaciones de ubicación puede ser mayor o menor que este valor.
minDistance: el intervalo de distancia mínima para las notificaciones, en m
locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 9000, 500,locListener);
// 60000 es de 1 minuto y 100 es KM
Por encima de usted tiene 9000 (nueve segundos) y 500, que es si la ubicación se ha movido más de 500 km