2011-04-13 20 views
8

entiendo el significado de GPS_PROVIDER (ubicaciones provienen de las señales GPS) y NETWORK_PROVIDER (ubicaciones se determinan a partir de las torres de celulares y puntos de acceso inalámbricos), pero no entienden el significado de PASSIVE_PROVIDER, a pesar de la definición en la API:¿Cuál es el significado de android.location.LocationManager.PASSIVE_PROVIDER?

Un proveedor de ubicación especial para que reciben ubicaciones sin realmente iniciar una reparación de ubicación. Este proveedor se puede usar para recibir pasivamente actualizaciones de ubicación cuando otras aplicaciones o servicios los soliciten sin solicitar las ubicaciones usted mismo. Este proveedor dará ubicaciones de devolución generadas por otros proveedores . Puede consultar el método getProvider() para determinar el origen de la actualización de ubicación. Requiere el permiso android.permission.ACCESS_FINE_LOCATION, aunque si el GPS no está habilitado este proveedor solo puede devolver correcciones gruesas.

¿Por qué uno usaría esto en lugar de uno de los otros proveedores? Para ahorrar batería? ¿El proveedor pasivo solo devuelve información útil si alguna otra aplicación solicita datos explícitamente a los proveedores reales, o siempre es seguro solicitar ubicaciones a partir de esto?

Respuesta

18

Este proveedor es útil para servicios que funcionan con la ubicación de los usuarios pero que no quieren perder la duración de la batería como usted señaló.

Por ejemplo, Google Latitude envía su ubicación actual a un servicio web para que sus amigos sepan dónde se encuentra. Si este servicio solicitara una reparación de GPS cada 5 minutos, la batería del dispositivo estará vacía muy rápido. Si el servicio solicita un proveedor de ubicación pasiva, se envía una ubicación cada vez que se inicia Google Maps y una solución adquirida o algunas otras aplicaciones inicia una actualización del proveedor de ubicación y el servicio puede actuar sobre los datos de ubicación sin gastar energía adicional en las actualizaciones de ubicación.

Si necesita los datos de ubicación correctos en el momento exacto, usar este proveedor no ayudará. Para la mayoría de las cosas que no se ejecutan en un servicio en segundo plano, este proveedor de ubicación es inútil porque solo enviará actualizaciones si otras aplicaciones activan una actualización de la ubicación del usuario.

+0

¡Gran idea! Entonces, eso resume que si alguien necesita al menos una ubicación posible más cercana, ¡no deberían usar 'pasivo_proveedor'! – sud007

3

Para agregar a @Janusz, cuando recibe una reparación debido al proveedor de otra persona y desea saber de qué proveedor es esta solución desde (RED o GPS), puede llamar al getProvider() para encontrar esto.

Cuestiones relacionadas