Sajal Saha
Sajal Saha

Reputation: 169

Getting Current Location Longitude and Latitude without Change my Position

I can find the current location latitude and longitude.But These data are not shown before change my current position.I want to get current location longitude and latitude without change my position.

package com.example.gps;

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.util.Log;
import android.view.Menu;
import android.widget.Button;
import android.widget.Toast;

import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
public class MainActivity extends Activity {
MapView m;
Button b,b1,b2;
MapController mc;double l1;double l2;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    LocationManager mlocManager = 

        (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
    boolean net = mlocManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
    Location l = null;
    if(net)
        l= mlocManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
    if(l!=null)
    {
        l1 = l.getLongitude();
        l2 = l.getLatitude();
    }
    Toast.makeText(getApplicationContext(),l1+".."+l2, Toast.LENGTH_LONG).show();
        LocationListener mlocListener = new MyLocationListener(); 
        mlocManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, mlocListener); 


}

public class MyLocationListener implements LocationListener 

{ 

@Override 

public void onLocationChanged(Location loc) 

{ 

loc.getLatitude(); 

loc.getLongitude(); 

String Text = "My current location is: "+ 

"Latitud = " + loc.getLatitude() + 

"Longitud = " + loc.getLongitude(); 



Toast.makeText( getApplicationContext(), 

Text, 

Toast.LENGTH_SHORT).show(); 

} 



@Override 

public void onProviderDisabled(String provider) 

{ 

Toast.makeText( getApplicationContext(), 

"Gps Disabled", 

Toast.LENGTH_SHORT ).show(); 

} 



@Override 

public void onProviderEnabled(String provider) 

{ 

Toast.makeText( getApplicationContext(), 

"Gps Enabled", 

Toast.LENGTH_SHORT).show(); 

} 



@Override 

public void onStatusChanged(String provider, int status, Bundle extras) 

{ 



} 

}
}

Since this code returns data from onLocationChanged(Location loc) method so i don't get data without change my location after install it on my device.But i need latitude ,longitude without change my location.Is it possible.Please give a solution

Upvotes: 3

Views: 7720

Answers (1)

SubbaReddy PolamReddy
SubbaReddy PolamReddy

Reputation: 2113

try this code:

locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    // Define the criteria how to select the locatioin provider -> use
    // default
    Criteria criteria = new Criteria();
    provider = locationManager.getBestProvider(criteria, false);
    Location location = locationManager.getLastKnownLocation(provider);

    // Initialize the location fields
    if (location != null) {
      System.out.println("Provider " + provider + " has been selected.");
      onLocationChanged(location);
    } else {
      latituteField.setText("Location not available");
      longitudeField.setText("Location not available");
      System.out.println("Location not avilable");
    }
  }

  /* Request updates at startup */
  @Override
  protected void onResume() {
    super.onResume();
    locationManager.requestLocationUpdates(provider, 400, 1, this);
  }

  /* Remove the locationlistener updates when Activity is paused */
  @Override
  protected void onPause() {
    super.onPause();
    locationManager.removeUpdates(this);
  }

  @Override
  public void onLocationChanged(Location location) {
    double lat = (double) (location.getLatitude());
    double lng = (double) (location.getLongitude());
    latituteField.setText(String.valueOf(lat));
    longitudeField.setText(String.valueOf(lng));
    Log.i(TAG, "Lattitude:" +lat);
    Log.i(TAG, "Longitude:" +lng);
  }

Upvotes: 4

Related Questions