Desarrollo – Como obtener la localización del dispositivo

Comienzo con este primer post una serie de artículos sobre pequeños trozos de código que he utilizado en mis aplicaciones con objeto de que os os puedan servir a los que estais desarrollando, o que os entre el gusanillo a aquellos que estan dudando si dar el salto y realizar sus propios proyectos.

En la aplicación Record my life, entre otras cosas, se obtiene la localización del dispositivo, que es enviada mediante mail a la dirección previamente configurada.

La localización puede ser por la red (la celda en la que se encuentra el móvil) o por GPS si lo tiene activado.

Es sencillo de realizar:


/**
* location
*/
public static String getLocation() {
String l = "";
try {
LocationManager lm = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
Criteria cri = new Criteria();
cri.setAccuracy(Criteria.ACCURACY_FINE);
String provider = lm.getBestProvider(cri, true);
Location loc = lm.getLastKnownLocation(provider);
Double d1 = loc.getLatitude();
Double d2 = loc.getLongitude();

// http://www.mapquest.com/maps?l=43.28083&g=-2.9598
String latitude = Location.convert(d1,Location.FORMAT_DEGREES);
String longitude = Location.convert(d2,Location.FORMAT_DEGREES);
latitude = latitude.replace(",", ".");
longitude = longitude.replace(",", ".");
l = "http://www.mapquest.com/maps?l=" + latitude + "&g=" + longitude;
Util.logDebug("location: " + l);
} catch(Exception e) {
Util.logDebug("Exception (getLocation): " + e.getMessage());
}
return l;
}

Si observais el código vereis que es muy sencillo.

Lo que se envía por mail es una url de un servicio para que al pulsarlo, nos muestre directamente el mapa con la localización. El formato lo podeis ver comentado.

Para poder acceder a la localización hay que incluir en el AndroidManifest los siguientes permisos:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>

Mas información en la documentación de Android.

7 comentarios sobre “Desarrollo – Como obtener la localización del dispositivo

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s