Unos van de vacaciones y otros vuelven, en mi caso, me identifico con el segundo grupo, para los que ahora van a tener más tiempo y para los que buscan el tiempo donde lo haya, vamos con una nueva entrega de códigos, snippets o usos de programación android.
En esta entrega vamos a hablar de la iniciación a una aplicación de android por la que ya habéis preguntado en más de una ocasión, el acceso al GPS.
Como es bien sabido, la mayoría de los terminales android vienen equipados con un GPS al que de un tiempo a esta parte se le están encontrando diversos y estupendos usos en diferentes aplica
ciones, aparte de la ya conocida de localización o navegación. La realidad aumentada, las redes sociales localizadas, la geolocalización de fotos, etc. Todo esto es posible por la localización que nos proporciona nuestro GPS… Sería injusto no comentar que actualmente también gana mucho terreno la localización por triangulación de antenas, es un método sencillo, pero en la gran mayoría de los casos, mas impreciso que la localización por GPS.
Android brinda el acceso a este GPS desde su SDK de una forma sencilla y clara, en esta entrega vamos a crear un listado básico donde solicitaremos al programa nos facilite las coordenadas de nuestra localización. Una vez tengamos aprendido como realizar esto, podremos investigar sobre como convertir esas coordenadas en direcciones, etc.
Como siempre que se empieza, empecemos por el principio. Vamos a mostrar el código completo y después lo iremos diseccionando para que sepamos en todo momento lo que estamos haciendo.
package vierco.com.androideLibreLoc;import android.app.Activity;import android.content.Context;import android.location.Location;import android.location.LocationListener;import android.location.LocationManager;import android.os.Bundle;import android.widget.Toast;
public class androideLibreLoc extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(B
undle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LocationManager milocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
LocationListener milocListener = new MiLocationListener();
milocManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, milocListener);
}
public class MiLocationListener implements LocationListener
{
public void onLocationChanged(Location loc)
{
loc.getLatitude();
loc.getLongitude();
String coordenadas = «Mis coordenadas son: » + «Latitud = » + loc.getLatitude() + «Longitud = » + loc.getLongitude();Toast.makeText( getApplicationContext(),coordenadas,Toast.LENGTH_LONG).show();}public void onProviderDisabled(String provider){Toast.makeText( getApplicationContext(),«Gps Desactivado»,Toast.LENGTH_SHORT ).show();}public void onProviderEnabled(String provider){Toast.makeText( getApplicationContext(),«Gps Activo»,Toast.LENGTH_SHORT ).show();}public void onStatusChanged(String provider, int status, Bundle extras){}}
import android.location.Location;import android.location.LocationManager;import android.location.LocationListener;
// Usamos la LocationManager para acceder a la localización o uso del GPS
LocationManager milocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
LocationListener milocListener = new MiLocationListener();
milocManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, milocListener);
public void onLocationChanged(Location loc) // Escucha cambios de coordenadaspublic void onProviderDisabled(String provider) // GPS desactavidopublic void onProviderEnabled(String provider) // GPS Activo
public void onLocationChanged(Location loc){loc.getLatitude();loc.getLongitude();String coordenadas = «Mis coordenadas son: » + «Latitud = » + loc.getLatitude() + «Longitud = « + loc.getLongitude();Toast.makeText( getApplicationContext(),coordenadas,Toast.LENGTH_LONG).show();}public void onProviderDisabled(String provider){Toast.makeText( getApplicationContext(),»Gps Desactivado«,Toast.LENGTH_SHORT ).show();}public void onProviderEnabled(String provider){Toast.makeText( getApplicationContext(),»Gps Activo«,Toast.LENGTH_SHORT ).show();}
loc.getLatitude(); // Indicamos loc proveniente de onLocationChanged, getLatitude tal como su propio nombre indica nos va a solicitar la latitud de nuestra ubicación
loc.getLongitude(); // Realizamos la misma operación anterior, con la diferencia que en este caso solicitamos la longitud de la posición
String coordenadas = «Mis coordenadas son: » + «Latitud = « + loc.getLatitude() + «Longitud = » + loc.getLongitude(); // Estamos creando una cadena de texto String indicando un texto elegido por nosotros al que sumamos con + la longitud y latitud
Toast.makeText( getApplicationContext(),coordenadas,Toast.LENGTH_LONG).show(); // Creamos el mensaje en pantalla dando salida a la String “coordenadas” anteriormente definida
<uses-permission android:name=«android.permission.ACCESS_FINE_LOCATION»></uses-permission>
El GPS, en el contexto de los smartphone, es actualmente un mundo lleno de posibilidades que está prácticamente empezando. Espero que este tutorial haya servido para despertar la curiosidad de algún lector sobre el tema. Lo que hoy puede ser curiosidad, mañana puede convertirse en una buena idea… y pasado mañana en una aplicación que nos haga la vida más sencilla. Si este tema es del agrado de quienes nos leen, siempre podemos profundizar en el.
Como siempre, ánimo a todos, los que empezáis, los que ya lleváis tiempo y a los que podéis enseñarnos muchas cosas. Estos últimos sabrán muy bien, como digo siempre, que la programación requiere de más o menos conocimientos, pero sobre todo requiere de ganas, ilusión y originalidad.
Un saludo, Vierco.