M0286_Libro Curso
Android
Dependiendo del proveedor, nuestro dispositivo puede tardar un tiempo más o menos largo en interpretar su posición actual, pero tenemos que tener en cuenta que Android almacena la última posición conocida, por lo que podemos usar el método getLastKnownLocation() para consultarla e imprimirla directamente. Lo más seguro será que dicha posición difiera bastante de la posición actual, pero tenemos un punto de partida para la aplicación. Ahora vamos a hacer que se muestren los cambios de posición, llamando al método requestLocationUpdates() en el objeto LocationManager . Para poder ahorrar batería, algo muy importante en los dispositivos móviles, lo que vamos a hacer es que se actualice únicamente cuando esté en segundo plano la aplicación. Por lo que modificaremos los métodos onPause() y onResume() . @Override protected void onResume() { super.onResume(); // comienza las actualizaciones (retraso recomendado >= 60000 ms) mgr.requestLocationUpdates(best, 15000, 1, this); } @Override protected void onPause() { super.onPause(); // Detiene las actualizaciones para ahorrar bateria // mientras la aplicacion este en pausa mgr.removeUpdates(this); } El método requestLocationUpdates() será llamado cuando se reanude la aplicación. Este método coge cuatro parámetros, el proveedor, el retraso de las actualizaciones, la distancia mínima y un objeto LocationListener . Si la aplicación esta en pausa, se llamará al método removeUpdates() y así detendremos la obtención de la actualización de la posición. Este es el motivo por el que LocationListener es implementado por LocationTest , así pasamos una referencia a la actividad en vez de crear un nuevo objeto. A continuación definimos los cuatro métodos requeridos por la interfaz: public void onLocationChanged(Location location) { dumpLocation(location); } public void onProviderDisabled(String provider) { log(“\nProvider disabled: “ + provider); } public void onProviderEnabled(String provider) { log(“\nProvider enabled: “ + provider); }
154
Made with FlippingBook - Online catalogs