Android es la lista negra de nuestra ubicación

Hemos creado un LocationListener en nuestra aplicación. A veces, el teléfono entra en una "brecha de GPS" y simplemente deja de reportar datos de ubicación. Hemos observado por un tiempo y lo único que parece moverlo de este estado es reiniciar el teléfono.

Los enganché para conseguir los registros y encontré esto:

02-18 13:35:43.671 703 948 I LocationManagerService: handleLocationChanged for android.uid.system:1000, Provider: passive 02-18 13:35:43.671 703 948 I LocationManagerService: handleLocationChanged for com.google.uid.shared:10040, Provider: passive 02-18 13:35:43.671 703 948 I LocationManagerService: handleLocationChanged for com.google.uid.shared:10040, Provider: passive 02-18 13:35:43.671 703 948 D LocationManagerService: dropping location (blacklisted): com.google.android.apps.maps matches com.google. 

Mirando los archivos fuente mencionados, simplemente verifica una lista negra que crea y evidentemente no informa del punto si está en la lista negra.

Mirando el código y lo anterior parece que su bloqueo de datos de ubicación para cualquier cosa com.google, pero no sé por qué.

Busqué y no encontré nada en esto y esperaba algo de ayuda.

Debe conectar su teléfono a un IDE y reiniciarlo mientras observa los cambios lógicos que podrían estar contribuyendo a la prohibición de la ubicación. Creo que la razón probable es que su identificador de dispositivo toma algún tiempo para registrarse con la antena del teléfono celular y eso es lo que está causando que el reinicio aparezca temporalmente para solucionar el problema.

Las listas negras de ubicación y las listas blancas se almacenan en los valores de Settings.Secure , locationPackagePrefixBlacklist y locationPackagePrefixWhitelist , respectivamente. Estos valores contienen prefijos de nombre de paquete separados por comas. LocationBlacklist.isBlackListed() comprueba primero la lista negra de una coincidencia y verifica la lista blanca de una excepción. LocationBlacklist registra un ContentObserver para que cualquier cambio en los valores de configuración se ContentObserver afectado inmediatamente.

Desde Android 5.1, las listas son consultadas por getLastLocation() y handleLocationChangedLocked() de LocationManagerService , así como updateFences() de GeofenceManager . Éstos simplemente devuelven null o salen en silencio si el prefijo de la aplicación o el nombre completo está en la lista negra. Todas las demás API de ubicación no se ven afectadas.

Dado que está observando un cambio de tiempo de ejecución en la lista negra, debe haber un proceso del sistema que agregue com.google al valor Settings.Secure algún momento después del inicio. Si no puede identificarlo, quizás cambiar manualmente el valor a través de la línea de comandos sqlite3 restauraría las actualizaciones de su aplicación. Podría ser cambiado de nuevo en algún momento, pero la identificación del culpable podría ser más fácil que tener que esperar a un reinicio cada vez. También puede intentar agregar com.google.android.apps.maps a las excepciones de lista blanca.

En cuanto a la causa raíz de su problema, mi suposición salvaje es que la lista negra se está haciendo por alguna parte de Gapps en su dispositivo. Tal vez piensa que se está ejecutando dentro de un emulador o VM? ¿Está ejecutando una ROM personalizada?

  • ¿Cómo enviar mi ubicación (longitud y latitud) como una respuesta sms a otra persona?
  • ¿Cómo obtener la latitud y longitud actuales sin utilizar el método getLastKnownLocation en Android?
  • Obtener la ubicación de Android a través de wifi no funciona
  • ¿Cómo encontrar si un punto GPS se encuentra en un conjunto determinado de inicio y fin ubicación GPS?
  • ¿ICS Android habilita los gps de forma programática?
  • Cómo encontrar el código postal por latitud y logitud para el Reino Unido
  • GPS Tracker Puntos de alta fluctuación
  • Ejecutar Gps como servicio de fondo y enviar coordenadas al servidor web (PHP)
  • Sigo obteniendo una ubicación incorrecta en Android
  • Android: ¿Cómo obtener una altitud exacta?
  • Rotar un ImageView como una brújula (con el "polo norte" puesto en otro lugar)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.