1

Possible Duplicate:
How to get Latitude and Longitude of the mobiledevice in android?

I need a straight forward code which only find the Latitude and Longitude.
I want to sent this over the webservice to get the near by hotels.

I have used a lot of codes they work very well but some time they didn't work.
If some one wants that code then I can also provide it is very good.

Nimantha
  • 6,405
  • 6
  • 28
  • 69
sandy
  • 3,311
  • 4
  • 36
  • 47
  • Check out [this](http://stackoverflow.com/questions/3145089/what-is-the-simplest-and-most-robust-way-to-get-the-users-current-location-in-an) post. In my opinion the code by Fedor is one of the best solutions so far (especially if use just need lat/lon once) and it definitely works. – iDroid Jul 06 '11 at 13:06
  • Thanx iDroid I have already used the same code but there is the problem that this application get crashed for many times. So i was searching for a simple code. – sandy Jul 08 '11 at 05:10

1 Answers1

3

This is the code for getting user current latitude and longitude using geo coading in Android:

        public class HomeActivity extends Activity implements LocationListener{
    public static Context mContext;
    private double latitude, longitude;
     public LocationManager mLocManager;
    // *******This is the new Code start on 11/4/2011 at 3 o'clock
    
    
    /**
     * This is the Home Button if user Login then it is move to TennisAppActivity otherwise move to Login  
     *
     */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        mContext=this;
        super.onCreate(savedInstanceState);
        setContentView(R.layout.homelayout);
        

        mLocManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
         
        mLocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,
                this);
        mLocManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0,
                0, this);
        locationUpdate();
        ((Button) this.findViewById(R.id.ButtonHome))
                .setOnClickListener(new OnClickListener() {
                    public void onClick(View arg0) {
                        
                            startActivity(new Intent(HomeActivity.this,
                                    DefaultDisplay.class));
                        
                    }
                });

        ((Button) this.findViewById(R.id.ButtonProfile))
                .setOnClickListener(new OnClickListener() {

                    public void onClick(View arg0) {
                        if (GUIStatics.boolLoginStatus) {
                            startActivity(new Intent(HomeActivity.this,
                                    MyProfile.class));
                        } else {
                            Intent intent=new Intent(HomeActivity.this,
                                    Login.class);
                            intent.putExtra("moveTo","MyProfile");
                            startActivity(intent);
                        }
                    }
                });

        ((Button) this.findViewById(R.id.ButtonNotifications))
                .setOnClickListener(new OnClickListener() {

                    public void onClick(View arg0) {
                        if (GUIStatics.boolLoginStatus) {
                            startActivity(new Intent(HomeActivity.this,
                                    ShowAllNotificationActiviry.class));
                        } else {
                            Intent intent=new Intent(HomeActivity.this,
                                    Login.class);
                            intent.putExtra("moveTo","ShowAllNotificationActiviry");
                            startActivity(intent);
                        }
                    }
                });

        ((Button) this.findViewById(R.id.ButtonFavorites))
                .setOnClickListener(new OnClickListener() {

                    public void onClick(View arg0) {
                        if (GUIStatics.boolLoginStatus) {
                            startActivity(new Intent(HomeActivity.this,
                                    FavoritesActivity.class));
                        } else {
                            Intent intent=new Intent(HomeActivity.this,
                                    Login.class);
                            intent.putExtra("moveTo","FavoritesActivity");
                            startActivity(intent);
                        }
                    }
                });

                ((Button) this.findViewById(R.id.ButtonMore))
                .setOnClickListener(new OnClickListener() {
                    public void onClick(View arg0) {
                            startActivity(new Intent(HomeActivity.this,
                                    MoreListActivity.class));
                    }
                });

    }
    
    public void locationUpdate()
    {
        CellLocation.requestLocationUpdate();
    }
    
    
    public void getAddress(double lat, double lng) {
        Geocoder geocoder = new Geocoder(HomeActivity.mContext, Locale.getDefault());
        try {
            List<Address> addresses = geocoder.getFromLocation(lat, lng, 1);
            Address obj = addresses.get(0);
            String add = obj.getAddressLine(0);
            GUIStatics.currentAddress = obj.getSubAdminArea() + ","
                    + obj.getAdminArea();
            GUIStatics.latitude = obj.getLatitude();
            GUIStatics.longitude = obj.getLongitude();
            GUIStatics.currentCity= obj.getSubAdminArea();
            GUIStatics.currentState= obj.getAdminArea();
            add = add + "\n" + obj.getCountryName();
            add = add + "\n" + obj.getCountryCode();
            add = add + "\n" + obj.getAdminArea();
            add = add + "\n" + obj.getPostalCode();
            add = add + "\n" + obj.getSubAdminArea();
            add = add + "\n" + obj.getLocality();
            add = add + "\n" + obj.getSubThoroughfare();

            Log.v("IGA", "Address" + add);
            // Toast.makeText(this, "Address=>" + add,
            // Toast.LENGTH_SHORT).show();

            // TennisAppActivity.showDialog(add);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
        }
    }
    
    

    public void onLocationChanged(Location location) {
        latitude = location.getLatitude();
        longitude = location.getLongitude();
        GUIStatics.latitude=location.getLatitude();
        GUIStatics.longitude= location.getLongitude();
        Log.v("Test", "IGA" + "Lat" + latitude + "   Lng" + longitude);
        //mLocManager.r
         
        getAddress(latitude, longitude);
        if(location!=null)
        {
            
        mLocManager.removeUpdates(this);
        }
        // Toast.makeText(this, "Lat" + latitude + "   Lng" + longitude,
        // Toast.LENGTH_SHORT).show();
    }


    public void onProviderDisabled(String arg0) {
        // TODO Auto-generated method stub
        Toast.makeText(HomeActivity.this, "Gps Disabled", Toast.LENGTH_SHORT).show();
        Intent intent = new Intent(
                android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
        startActivity(intent);
    }


    public void onProviderEnabled(String arg0) {
        // TODO Auto-generated method stub
        
    }


    public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
         if(arg1 == 
                LocationProvider.TEMPORARILY_UNAVAILABLE) { 
                                        Toast.makeText(HomeActivity.this, 
                "LocationProvider.TEMPORARILY_UNAVAILABLE", 
                Toast.LENGTH_SHORT).show(); 
                            } 
                            else if(arg1== LocationProvider.OUT_OF_SERVICE) { 
                                        Toast.makeText(HomeActivity.this, 
                "LocationProvider.OUT_OF_SERVICE", Toast.LENGTH_SHORT).show(); 
                            } 
        
    }
}
Nimantha
  • 6,405
  • 6
  • 28
  • 69
DynamicMind
  • 4,240
  • 1
  • 26
  • 43