Después de un poco de investigación Esto es lo que ocurrió:
public class UseGps extends Activity
{
Button gps_button;
TextView gps_text;
LocationManager mlocManager;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
gps_button = (Button) findViewById(R.id.GPSButton);
gps_text = (TextView) findViewById(R.id.GPSText);
gps_button.setOnClickListener(new OnClickListener() {
public void onClick(View viewParam) {
gps_text.append("\n\nSearching for current location. Please hold...");
gps_button.setEnabled(false);
mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
LocationListener mlocListener = new MyLocationListener();
mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mlocListener);
}
});
}
/* Class My Location Listener */
public class MyLocationListener implements LocationListener
{
@Override
public void onLocationChanged(Location loc)
{
double lon = loc.getLatitude();
double lat = loc.getLongitude();
gps_text.append("\nLongitude: "+lon+" - Latitude: "+lat);
UseGps.this.mlocManager.removeUpdates(this);
gps_button.setEnabled(true);
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
}
}
Esto configura una actividad con un botón y TextView. Establezca un oyente en el botón que inicia el administrador de ubicación.
He creado una clase, MyLocationListener
, que implementa LocationListener
, y luego reemplazar el método onLocationChanged()
, básicamente diciéndole que la primera ubicación se pone anexa a la Vista de Texto y luego se elimina el gestor de ubicación.
Gracias a los que ayudaron y espero que esto sea de utilidad para otra persona.
bien y disculpe mi ignorancia, pero lastKnownLocation dosnt implica mi ubicación actual en este momento .. Quiero que la aplicación obtenga mi ubicación tan pronto como presione el botón, ¿no es posible que la última ubicación conocida haya sucedido? Hace media hora, 2 millas atrás de la carretera? –
y luego onLocationChanged es la mejor manera de obtener la posición más actualizada. – david
Pero ese es mi punto, ¿y si estoy parado y quiero obtener el puesto en el que me encuentro actualmente? ¿Hay alguna forma de inicializar mi ubicación en, por ejemplo, 0 0, que luego desencadenaría un cambio de ubicación? –