sábado, 6 de julio de 2013

Uso de GPS del smathphone

Ing. Abraham Sopla
Este pequeño programa didáctico, permite capturar la Latitud usando el GPS del Smartphone. Esto es mas que suficiente para que el lector pueda capturar la Longitud, Altitud y otros datos del GPS.En este programa se usa un boton y un label, tal como se puede ver aquí: 
imagebtnCapturar = (Button)findViewById(R.id.btnCapturar);
lblLatitud = (TextView)findViewById(R.id.lblInformacion); 


 

Programa completo

package com.example.pruebalocalizacion;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {
     
      private Button btnCapturar;
      private TextView lblLatitud;
     
      private LocationManager locManager;
      private LocationListener locListener;
     
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       
        btnCapturar = (Button)findViewById(R.id.btnCapturar);
        lblLatitud = (TextView)findViewById(R.id.lblInformacion);  
       
        btnCapturar.setOnClickListener(new OnClickListener() {
                 
                  @Override
                  public void onClick(View v) {
                        comenzarLocalizacion();
                       
                  }
            });
    }
   
    private void comenzarLocalizacion()
    {
      //Obtenemos una referencia al LocationManager
      locManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
     
      //Obtenemos la última posición conocida
      Location loc = locManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
     
      //Mostramos la última posición conocida
      mostrarPosicion(loc);
     
      //Nos registramos para recibir actualizaciones de la posición
      locListener = new LocationListener() {
            public void onLocationChanged(Location location) {
                  mostrarPosicion(location);
            }
            public void onProviderDisabled(String provider){
                  //lblEstado.setText("Provider OFF");
            }
            public void onProviderEnabled(String provider){
                  //lblEstado.setText("Provider ON ");
            }
            public void onStatusChanged(String provider, int status, Bundle extras){
                  Log.i("", "Provider Status: " + status);
                  //lblEstado.setText("Provider Status: " + status);
            }
      };
     
      locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 30000, 0, locListener);
    }
    
    private void mostrarPosicion(Location loc) {
      if(loc != null)
      {
            lblLatitud.setText("Altitud="+String.valueOf(loc.getLatitude()));
            Log.i("", String.valueOf(loc.getLatitude() + " - " + String.valueOf(loc.getLongitude())));
      }
      else
      {
            lblLatitud.setText("Precision: (sin_datos)");
      }
    }
}

No hay comentarios:

Publicar un comentario