Obtener ubicación * gruesa * del proveedor de GPS en Android

Mi aplicación sólo necesita datos de ubicación muy aproximados, por lo que originalmente establecí mis permisos de manifiesto en ACCESS_COARSE_LOCATION y configuré un oyente de ubicación para NETWORK_PROVIDER . Esto me dio exactamente el tipo de estimación aproximada de ubicación que necesitaba, pero sólo con los servicios de ubicación de Google activados.

Me esperaba que si el usuario sólo tenía GPS habilitado, que todavía recibiría una estimación aproximada de su ubicación. Pero parece que la única manera de obtener CUALQUIER información de ubicación del GPS_PROVIDER es utilizando el permiso ACCESS_FINE_LOCATION .

Por lo tanto, ¿es cierto que con sólo GPS habilitado, una aplicación no puede recibir información de ubicación a menos que tenga el permiso ACCESS_FINE_LOCATION ? En otras palabras, el GPS_PROVIDER no puede enviar estimaciones aproximadas de ubicación si la aplicación sólo tiene permiso ACCESS_COARSE_LOCATION ?

Por lo tanto, ¿es cierto que con sólo GPS habilitado, una aplicación no puede recibir información de ubicación a menos que tenga el permiso ACCESS_FINE_LOCATION?

En términos generales, sí.

Citando la documentación de LocationManager :

Si su aplicación sólo tiene el permiso grueso, entonces no tendrá acceso al GPS o los proveedores de ubicación pasiva. Otros proveedores aún devolverán los resultados de la ubicación, pero la velocidad de actualización se estrangulará y la ubicación exacta se verá ofuscada hasta un nivel aproximado de precisión.

En otras palabras, el GPS_PROVIDER no puede enviar estimaciones aproximadas de ubicación si la aplicación sólo tiene permiso ACCESS_COARSE_LOCATION?

Citando las notas de la versión de Android 4.2 :

En comparación con las versiones anteriores de Android, los resultados de ubicación del usuario pueden ser menos precisos si su aplicación solicita el permiso ACCESS_COARSE_LOCATION pero no solicita el permiso ACCESS_FINE_LOCATION. Para satisfacer las expectativas de privacidad de los usuarios cuando su aplicación solicita permiso para la ubicación aproximada (y no la ubicación correcta), el sistema no proporcionará una estimación de ubicación de usuario que sea más precisa que un bloque de ciudad.

Sin embargo, estoy asumiendo que esto no reemplaza la declaración "no tendrá acceso a GPS" de LocationManager . Supongo que esto significa que los datos NETWORK_PROVIDER pueden ser inhibidos, si se considera demasiado preciso.

  • ¿Cómo puedo obtener las coordenadas de un mapa al toque con MapFragment (no MapView)?
  • Android mejor manera de obtener la ubicación actual
  • Rotar un ImageView para hacer frente a una posición dada en latitud y longitud
  • RuntimeException en el análisis de Gson JSON: Error al invocar java.lang.ClassLoader protegido () sin args
  • Usar ubicación simulada sin configurarla en la configuración
  • ZipCode desde la ubicación
  • ¿Cómo obtener la ubicación actual de este código de mapa? También intento recibir datos del vehículo del servidor cuando estoy abierto el mapa
  • No se puede obtener la ubicación en Genymotion VM
  • Creación de un objeto Ubicación en Android con valores de latitud y longitud
  • Android Encuentra la latitud Longitud del punto X de la ubicación definida
  • No puede encontrar la ubicación exacta actual en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.