Archivos de Etiquetas: posicionamiento

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:

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