Avisos

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

Respuesta
 
Herramientas
  #1  
Viejo 03/12/16, 12:35:43
Array

[xs_avatar]
SlavisWolf SlavisWolf no está en línea
Usuario poco activo
 
Fecha de registro: dic 2016
Mensajes: 2
Tu operador: Movistar

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   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 18:12:33 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /