Home Menu

Menu



Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 03/12/16, 12:35:43
Avatar de SlavisWolf
SlavisWolf SlavisWolf no está en línea
Usuario poco activo
Mensajes: 2
 
Fecha de registro: dic 2016
Mensajes: 2
Tu operador: Movistar
Mencionado: 1 comentarios
Tagged: 0 hilos
Problema para Obtener la localizacion actual del móvil.

Hola gente, os comento... quiero obtener la localización actual de un telefono desde 2 actividades distintas..., pues bien quise hacer unaclase que me gestionara todo lo relacionado con la Localizacion y el gps.

Os la enseño:

(Click para mostrar/ocultar)

import android.location.Location;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;


import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.location.LocationListener;
import com.google.android.gms.location.LocationRequest;
import com.google.android.gms.location.LocationServices;
import android.support.v7.app.AppCompatActivity;


//esta clase se iniciara en las notas y nos permitira tener la localizacion más precisa posible.
public class ObtenedorDeLocalizacionActual implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, LocationListener {

private static Location localizacion;
private GoogleApiClient apiClient;

public ObtenedorDeLocalizacionActual(AppCompatActivity c) {

System.out.println("Constructor");
if (apiClient == null) {
apiClient = new GoogleApiClient.Builder(c)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(LocationServices.API)
.build();
}
}

@override
public void onConnected(@Nullable Bundle bundle) {
// ACTUALIZAR POSICION
System.out.println("onConnected");
LocationRequest locationRequest = new LocationRequest();
locationRequest.setInterval(2000);
locationRequest.setFastestInterval(1000);
locationRequest.setPriority(LocationRequest.PRIORI TY_BALANCED_POWER_ACCURACY);//ES EL MAS EQUILIBRADO entre precision y batería.
LocationServices.FusedLocationApi.requestLocationU pdates(apiClient, locationRequest, this);
}

@override
public void onConnectionSuspended(int i) {}

@override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
System.out.println("onConnectionFailed");
localizacion= LocationServices.FusedLocationApi.getLastLocation( apiClient);
}
@override
public void onLocationChanged(Location location) {
System.out.println("onLocationChanged");
localizacion=location;
}
public Location getLocalizacion() {
return localizacion;
}
}



Como podéis ver tengo varios chivatos para ver por donde va pasando, pues bien, esta clase la inicio en el OnCreate de una activity, y solo salta el chivato del constructor, no entra en ninguno de los métodos de los listener, un amigo mio, me ha dicho que a e el le ha funcionado poniendo los listener en las activities directamente, yo en principio vi más limpio hacer la obtención de la localización en una clase, y no ensuciar mas el codigo de la actividad...
Este codigo lo he probado tanto en el emulador de android, como en un movil, siempre, la localización siempre es null, porq nunca entra ni en el on conected ni en el failed ni en ningún metodo.

Entonces me ha entrado la duda de si estos listener solo se pueden usar en activities o es que tengo algo del código mal?

Saludos y gracias de antemano.
Responder Con Cita


Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android

Herramientas

Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 20:51:06 (GMT +1)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007