Android: ¿Cómo restablecer y descargar datos A-GPS?
¿Cómo puedo restablecer y descargar de forma programada nuevos datos A-GPS en una aplicación de Android? En otras palabras, ¿cómo funcionan las herramientas "Manage A-GPS state" en la aplicación GPS Status & Toolbox ?
- establecer 2 alertas de proximidad con la misma emisión
- Proveedor "gps" excepción desconocida al intentar eliminarTestProvider
- ¿Cómo cambio entre el GPS y el proveedor de la red?
- LocationClient no se puede resolver con un tipo
- ¿Utilizar el teléfono Android como ARM dev board?
- Android GPS tarda un tiempo en ser preciso
- GPS android requestLocationUpdate
- Adb -s emu geo arreglar no funciona sin utilizar telnet
- Servicios de Google Play o Servicios de ubicación de Android
- ¿Cómo puedo obtener la ubicación GPS actual?
- MSecurityInputMethodService es nulo en logcat
- El oyente de ubicación funciona desde un servicio pero no es un servicio de IntentService
- Android Geofencing error API con GPS?
Debería ser capaz de utilizar LocationManager.sendExtraCommand(String provider, String command, Bundle extras)
. Esto le permitirá borrar todo o parte de los datos GPS, por lo que se volverá a cargar. Los documentos están aquí , pero un resumen rápido de los argumentos, referenciados a partir de este código (para un proveedor de GPS):
Para el provider
, use LocationManager.GPS_PROVIDER
.
Para el command
, utilice "delete_aiding_data"
Para los extras, si pasa null
, borrará todos los datos. Si sólo desea borrar datos específicos (por ejemplo, sólo el almanaque o la posición), puede utilizar los indicadores encontrados en esta función como extras en el lote.
No olvide añadir android.permission.ACCESS_LOCATION_EXTRA_COMMANDS
a su lista de permisos en el manifiesto!
Hasta ahora, la mejor respuesta a mi pregunta parece ser una combinación de la respuesta de @Geobits y el código de inyección XTRA discutido en Problemas con sendExtraCommand y force_xtra_injection . En base a esto, actualmente utilizo lo siguiente:
locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); locationManager.sendExtraCommand(LocationManager.GPS_PROVIDER,"delete_aiding_data", null); Bundle bundle = new Bundle(); locationManager.sendExtraCommand("gps", "force_xtra_injection", bundle); locationManager.sendExtraCommand("gps", "force_time_injection", bundle);
Si alguien tiene ideas adicionales sobre cómo mejorar esto, o cómo determinar los mejores tiempos para borrar y descargar nuevos datos GPS, estaría muy interesado en escuchar.
Otra forma sencilla de borrar los datos GPS es apagar el dispositivo y sacar la batería por unos minutos. No estoy seguro si funciona para todos los dispositivos sin embargo. También he escrito una utilidad simple que utiliza el GpsStatus Listener para mostrar si el almanaque y las efemérides se han guardado o no para cada satélite. Se llama "GPS Check" y está disponible en GP.
- Android Support4Demos – API 4+ Soporte Demos proyecto completo
- No se puede personalizar la apariencia de EditText seleccionar handle / anchor en landscape