Help using GPS coordinates, Android

I use this code to get my location and print the coordinates on the screen.

package com.example.alpha;  

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 alpha extends Activity   
{  
    private LocationManager lm;  
    private LocationListener locationListener;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main); 

        //---use the LocationManager class to obtain GPS locations---
        lm = (LocationManager) 
            getSystemService(Context.LOCATION_SERVICE);    

        locationListener = new MyLocationListener();

        lm.requestLocationUpdates(
            LocationManager.GPS_PROVIDER, 
            0, 
            0, 
            locationListener);   
    }

    public class MyLocationListener implements LocationListener 
    {
       public void onLocationChanged(Location loc) {


           double lat = loc.getLatitude();
           double lon = loc.getLongitude();
           Toast.makeText(getBaseContext(), "Location changed : alphaLat: " + lat + 
                   " alphaLng: " + lon, 
                   Toast.LENGTH_SHORT).show();

        }

        @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
        }

    }        

}

The problem is that I want to use the lat and lon values ​​to send them through the stream. Any tips on how to get the coordinates outside the onLocationChanged method?

+3
source share
1 answer

Instead of declaring lat and lon as local variables, declare them as class level variables. Thus, you can access these values ​​outside the onLocationChanged method.

public class alpha extends Activity
{
         private LocationManager lm;
         private LocationListener locationListener;
         double lat;
         double lon;

  public class MyLocationListener implements LocationListener 
  {
   ...

   lat = loc.getLatitude();
   lon = loc.getLongitude();

   ........
+2
source

All Articles