¿El LocationManager de Android a veces usa varios megabytes de datos de Internet al obtener correcciones de posición? Y si es así, ¿en qué circunstancias? ¿Puede suceder incluso cuando la aplicación que utiliza el LocationManager no tiene permiso explícito para acceder a Internet?Uso de datos de Internet por el LocationManager de Android
Pregunto esto porque recientemente he notado que los datos de Internet utilizados por "Android OS" (como se informa en la pantalla Configuración -> "Uso de datos" en mi Samsung Galaxy Note con Android 4.0.4) son a veces 10 megabytes mas por dia La experimentación sugiere que este uso de datos solo se produce cuando ejecuto una aplicación que he escrito y que utiliza los datos de posición GPS proporcionados por el Administrador de ubicaciones. Cuando esta aplicación no se ejecuta, el "Sistema operativo Android" solo usa algunos kilobytes de datos por día.
Los únicos permisos en el manifiesto de la aplicación son "android.permission.ACCESS_FINE_LOCATION" y "android.permission.WRITE_EXTERNAL_STORAGE". No hay permiso para el acceso a internet. método
de la actividad onStart() contiene el código:
if (!mapview .ignoreGPS) {
lm.requestLocationUpdates(LocationManager. GPS_PROVIDER , gpsMinTime , gpsMinDistance , this);
}
código similar se llama cuando la bandera ignoreGPS está desactivado.
Existe también un método gotoLastLocation() que contiene el código:
Location l = lm.getLastKnownLocation(LocationManager. GPS_PROVIDER);
if (l == null) {
l = lm .getLastKnownLocation(LocationManager. NETWORK_PROVIDER);
}
Este método sólo se llama en raras ocasiones, cuando la bandera ignoreGPS está desactivado o cuando el usuario selecciona una opción de menú para ir a la última ubicación conocida.
Aparte de este método raramente llamado, no hay referencia a "NETWORK_PROVIDER".
¿GPS_PROVIDER usa "GPS asistido" de forma predeterminada? Si es así, ¿podría esto utilizar varios megabytes de datos? Incluso si no hay permiso de internet?
Si GPS_PROVIDER no puede obtener una solución de las señales del GPS, ¿utiliza LocationManager de forma predeterminada la red del teléfono celular? Incluso si la aplicación no tiene permiso de red? ¿Esto sería contado por el proveedor del teléfono como acceso a datos de Internet?
[Este] (http://developer.android.com/training/efficient-downloads/ index.html) puede ser relevante para sus intereses. – Josh
Gracias, Josh, por la sugerencia pero no puedo ver nada allí que me ayude. ¿Me estoy perdiendo de algo? Mi aplicación no tiene permiso para acceder a Internet y no solicita descargas explícitas; sin embargo, parece consumir varios megabytes de datos ... Supongo que esto debe ser mediante el uso de GPS asistido. Mi problema es cómo prevenir o limitar esto. – prepbgg