Hola, he estado buscando y no he encontrado ningún tema donde poner esto.
Estoy intentando lanzar un servicio en un hilo secundario que obtenga latitud y longitud cada 30 segundos mediante el GPS y mande un mensaje que es recibido por el BroadcastReceiver cada vez que la latitud y longitud ha cambiado (30 segundos).
El problema es que no se porque no entra al onLocationChanged. La aplicación no da error solo que cada 30 segundos en vez de entrar al onLocationChanged, da un mensaje de warning en amarillo en el Logcat. ¿Alguien sabe que hago mal? o ¿Como hacerlo?
Adjunto el workspace de la aplicación.
Eso lo repite cada 30 segundos que es cuando debe entrar al onLocationChanged.
package com.example.coordenadas;
import android.app.IntentService;
import android.content.Context;
import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
public class ServicioGps extends IntentService{
private LocationManager manejador;
private LocationListener locListener;
public ServicioGps() {
super("ServicioGps");
}
@Override
protected void onHandleIntent(Intent intent) {
//Inicio Gps
manejador= (LocationManager) getSystemService(Context.LOCATION_SERVICE);
//proveedor = manejador.GPS_PROVIDER;
locListener = new LocationListener(){
@Override
public void onLocationChanged(Location location) {
//Mando un mensaje cada vez que la posicion cambie con latitud y longitud.
if(location!=null)
{
Double lat = location.getLatitude();
Double lon= location.getLongitude();
Log.d("latitud y longitud: ", Double.toString(lat)+Double.toString(lon));
Intent e = new Intent();
e.setAction(MainActivity.ReceptorOperacion.ACTION_RESP);
e.addCategory(Intent.CATEGORY_DEFAULT);
e.putExtra("latitud", lat);
e.putExtra("longitud", lon);
sendBroadcast(e);
}
}
@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
};
Log.d("tag", "Voy a lanzar el requestlocationupdate");
manejador.requestLocationUpdates(LocationManager.GPS_PROVIDER, 30000, 0, locListener);
}
}