jueves, 17 de septiembre de 2015

Localización

Para la localización de un usuario, Android puede utilizar GPS o las señales inalámbricas usando la red de localización de Android.

Lo mínimo necesario

Definir un listener encargado de recibir la información cuando se produzca algún evento relacionado. El Listener se registra a través del método requestLocationUpdates() de la clase LocationManager.
//Instancia de LocationManager
LocationManager locationManager
(LocationManager) getSystemService(Context.LOCATION_SERVICE);

// Definimos el listener que recibirá las coordenadas
LocationListener locationListener = newLocationListener(){
    @Override
    public void onLocationChanged(Location location){
      ...
    }

    @Override
    public void onStatusChanged(String provider,int status,
Bundle extras){}

    @Override
    public void onProviderEnabled(String provider){}

    @Override
    public void onProviderDisabled(String provider){}
};

// Registro del listener en el LocationManager
// Se indica por parámetro el proveedor (NETWORK/GPS), el
// mínimo tiempo y mínimo cambio en distancia entre notificaciones
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER,0,0, locationListener);

Añadir el permiso de acceso a la localización al AndroidManifest.xml:
<uses-permission android:name=android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

Para dejar de recibir las actualizaciones hay que eliminar el listener:
@Override
protected void onPause() {
super.onPause();
locationManager.removeUpdates(locationListener);
}

Referencias

http://developer.android.com/reference/android/location/LocationListener.html

No hay comentarios:

Publicar un comentario