Getting latitude and longitude by GPS
===

I am trying to fetch Gps latitude and longitude, but i am having a query that whenever i try to fetch Lat & Long by checking on **use GPS satellite**s on my device, it is not providing any info where as soon i checked on **use wireless networks**, it provides me all information in desired manner.


currently i am using the following code :-

	void getLatitudeAndLongitude() {
		boolean gpsEnabled = false;
		LocationManager mLocMan = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
		Log.e("mLocation#####", "" + mLocMan);

		try {
			gpsEnabled = mLocMan
					.isProviderEnabled(LocationManager.GPS_PROVIDER);
		} catch (Exception ex) {
		}
		boolean networkEnabled = false;
		try {
			networkEnabled = mLocMan
					.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
		} catch (Exception ex) {
		}
		Location mCurrentLocation = null;

		// network*****************

		if (networkEnabled)
			mCurrentLocation = mLocMan
					.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);

		// gps********************
		if (gpsEnabled)
			mCurrentLocation = mLocMan
					.getLastKnownLocation(LocationManager.GPS_PROVIDER);

		Log.d("current location", "" + mCurrentLocation);
		LocationProvider mGpsProv = null;

		if (mGpsProv == null && mLocMan != null) {
			mGpsProv = mLocMan.getProvider(LocationManager.GPS_PROVIDER);
		}

		if (mLocMan != null) {

			mylocationlistener mGpsLocListener = new mylocationlistener();
			mLocMan.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,
					0 /* minTime ms */, 0 /* minDistance in meters */,
					mGpsLocListener);
			Log.d("Provoider1", "NETWORK_PROVIDER");
		}
		if (mLocMan != null && mGpsProv != null) {

			mylocationlistener mGpsLocListener = new mylocationlistener();
			mLocMan.requestLocationUpdates(LocationManager.GPS_PROVIDER,
					0 /* minTime ms /, 0 / minDistance in meters */, 0,
					mGpsLocListener);
			Log.d("Provoider2", "GPS_PROVIDER");
		}

	}

	class mylocationlistener implements LocationListener {

		@Override
		public void onLocationChanged(Location location) {
			if (location != null) {

				latitude = String.valueOf(location.getLatitude());
				longitude = String.valueOf(location.getLongitude());

				Log.e("location==", "" + location);
				Log.e("getLatitude", location.getLatitude() + "");
				Log.e("getLongitude", location.getLongitude() + "");

				if (GlobalConfig.DEBUG)
					Log.d("setUpIndividualWork", "location==" + location);

				new Handler().postDelayed(new Runnable() {
					@Override
					public void run() {

					}
				}, 1000);

				onGPSUpdate(location);

				Geocoder gcd = new Geocoder(setUpIndividualWorkOut.this,
						Locale.getDefault());
				List<Address> addresses = null;
				try {
					addresses = gcd.getFromLocation(location.getLatitude(),
							location.getLongitude(), 1);
				} catch (IOException e) {
					e.printStackTrace();
				}
				if (addresses != null && addresses.size() > 0) {
					userCurrentLocation = addresses.get(0).getLocality();
					Log.e("current location by GPS ", ""
							+ addresses.get(0).getLocality());
				}
			}
		}

		@Override
		public void onProviderDisabled(String provider) {
		}

		@Override
		public void onProviderEnabled(String provider) {
		}

		@Override
		public void onStatusChanged(String provider, int status, Bundle extras) {
		}
	}


i will be very thankful for your response .