开发者

help in using GPS coordinates, Android

I am using 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, in order to send them via a stream. Any advice on how to get the coordinates outside the onLocationChanged method?


Instead of declaring lat and lon as local variables, declare them as Class level variables. That way you can access these values outside 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();

   ........
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜