[Android] Programación Geolocaclización

Buenas!

Alguno tiene idea por qué no se entra en los métodos del listener?. Mi intención es que geolocalice cada 5 segundos independientemente de si el usuario se ha movido o no.

Un saludo
public class ServicioLocalizacion extends Service implements LocationListener{
    private LocationManager manejador;

    @Override
    public void onCreate() {
        super.onCreate();

        manejador = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {

             if (manejador.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {

            manejador.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 5000, 0, this);
            Toast.makeText(this, "El servicio " + LocationManager.NETWORK_PROVIDER +
                    " está activo", Toast.LENGTH_SHORT).show();
        }

        manejador.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
        return START_REDELIVER_INTENT;
    }

    @Override
    public void onLocationChanged(Location location) {
        Toast.makeText(this, location.toString(), Toast.LENGTH_SHORT).show();
    }

    ANOTHER OVERRIDES METHODS

}


[EDITADO]
Bueno al final he creado una clase que se encarga de la localización y que implementa a LocationListener y desde la clase de servicio creo un obj de dicha clase, donde paro o ejecuto la localización según corresponda. De ésta manera está funcionando, lo único que falla es que yo le pongo 5000ms que sería el equivalente a 5 segundos, y en realidad tarda bastante más entre cada localización.
Supongo que habrás dados permisos en el manifest a:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION">
<uses-library android:name="com.google.android.maps" />

googleando me he encontrado con ésto que quizá te sirva.
Esa cantidad de tiempo es la mínima (lo que se esperará antes de hace otra petición), por lo que no siempre se actualizará a los 5 segundos exactos. Depende del dispositivo y del hardware. Amén del estado de la batería. Es un tiempo aproximado. :)
2 respuestas