title: Get Current Location 0 in marshmallow where below 23 API its give exact current Location using fused Location
body: <p><em>I got current Location in Below 23 devices but getting (0.0,0.0) latitude and Longitude in 23 emulator device.</em></p>
  
  <p><strong>EDIT</strong>
  Currently I am using Fused Location Provider for get Current Location</p>
  
  <pre><code>public class ContactUsFragment extends Fragment implements ConnectionCallbacks, OnConnectionFailedListener, LocationListener {
   @Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      Log.i("TAG", "OnCreate Called");
      locationManager = (LocationManager) getActivity()
              .getSystemService(Context.LOCATION_SERVICE);
      buildGoogleApiClient();
  
  
  }
  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container,
                           final Bundle savedInstanceState) {
      // Inflate the layout for this fragment
      view = inflater.inflate(R.layout.fragment_contact_us, container, false);
  
      Log.i("TAG", "OnCreateView Called");
      setComponants(view);  // **** Method For Set Componants Of Layout
  </code></pre>
  
  <p><em>This is Map Image on click of it I want to get current Location and  pass it to Native Google Map app of device for navigate to target Location</em></p>
  
  <pre><code> mapImage.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
              Log.i("TAG", "On ImageView Click");
  
  
              if (Build.VERSION.SDK_INT &gt;= 23) {
  
                  if (checkPermission(Manifest.permission.ACCESS_FINE_LOCATION, getActivity().getApplicationContext(), getActivity())) {
  
                      if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
                          navigateToGoogleMap();
                      } else {
                          showSettingsAlert();
                      }
                  } else {
                      requestPermission(Manifest.permission.ACCESS_FINE_LOCATION, PERMISSION_REQUEST_CODE, getActivity().getApplicationContext(), getActivity());
                  }
              } else {
  
                  if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
                      navigateToGoogleMap();
                  } else {
                      showSettingsAlert();
                  }
  
              }
  
  
          }
  
  
      });
      return view;
  }
  </code></pre>
  
  <p><em>Below is code for get  Current Location</em></p>
  
  <pre><code>private synchronized void buildGoogleApiClient() {
      Log.i("TAG", "Building GoogleApiClient");
      mGoogleApiClient = new GoogleApiClient.Builder(getActivity().getApplicationContext())
              .addConnectionCallbacks(this)
              .addOnConnectionFailedListener(this)
              .addApi(LocationServices.API)
              .build();
      createLocationRequest();
  }
  
  private void createLocationRequest() {
      mLocationRequest = new LocationRequest();
      mLocationRequest.setInterval(UPDATE_INTERVAL);
      mLocationRequest.setFastestInterval(FASTEST_INTERVAL);
      mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
      builder = new LocationSettingsRequest.Builder()
              .addLocationRequest(mLocationRequest);
      //**************************
      builder.setAlwaysShow(true); //this is the key ingredient
      //**************************
  
  }
  @Override
  public void onConnected(Bundle bundle) {
  
      Location mCurrentLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
      // Note that this can be NULL if last location isn't already known.
      if (mCurrentLocation != null) {
          // Print current location if not null
          Log.d("DEBUG", "current location: " + mCurrentLocation.toString());
          currentlatitude = mCurrentLocation.getLatitude();
          currentlongitude = mCurrentLocation.getLongitude();
      }
      // Begin polling for new location updates.
      startLocationUpdates();
  }
  
  private void startLocationUpdates() {
  
      LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient,
              mLocationRequest, this);
  }
  
  private void stopLocationUpdates() {
      LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this);
  }
  
  @Override
  public void onConnectionSuspended(int i) {
      if (i == CAUSE_SERVICE_DISCONNECTED) {
          Toast.makeText(getActivity().getApplicationContext(), "Disconnected. Please re-connect.", Toast.LENGTH_SHORT).show();
      } else if (i == CAUSE_NETWORK_LOST) {
          Toast.makeText(getActivity().getApplicationContext(), "Network lost. Please re-connect.", Toast.LENGTH_SHORT).show();
      }
      mGoogleApiClient.connect();
  }
  
  @Override
  public void onLocationChanged(Location location) {
      String msg = "Updated Location: " +
              Double.toString(location.getLatitude()) + "," +
              Double.toString(location.getLongitude());
      Toast.makeText(getActivity().getApplicationContext(), msg, Toast.LENGTH_SHORT).show();
  
      currentlatitude = location.getLatitude();
      currentlongitude = location.getLongitude();
  }
  
  @Override
  public void onConnectionFailed(ConnectionResult connectionResult) {
  
  }
  </code></pre>
  
  <p>*This code is Working Properly when I use in below API23 devices but when I try on marshmallow Device it give current Location 0.0,0.0 *</p>
  
  <p><em>Below is my Manifest file</em></p>
  
  <pre><code>    &lt;uses-permission android:name="android.permission.CALL_PHONE" /&gt;
  &lt;uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&gt;
  &lt;uses-permission android:name="android.permission.INTERNET" /&gt;
  
  &lt;!-- Required to show current location --&gt;
  &lt;uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/&gt;
  &lt;uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /&gt;
  &lt;uses-permission-sdk-23 android:name="android.permission.ACCESS_COARSE_LOCATION"/&gt;
  &lt;uses-permission-sdk-23 android:name="android.permission.ACCESS_FINE_LOCATION"/&gt;
  
  &lt;uses-library android:name="com.google.android.maps" /&gt;
  
  &lt;!-- Required OpenGL ES 2.0. for Maps V2 --&gt;
  &lt;uses-feature
      android:glEsVersion="0x00020000"
      android:required="true" /&gt;
  
  &lt;application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:supportsRtl="true"
      android:theme="@style/AppTheme" &gt;
      &lt;activity
          android:name=".SplashActivity"
          android:label="@string/app_name"
          android:screenOrientation="portrait"
          android:theme="@style/Theme.AppCompat.NoActionBar" &gt;
          &lt;intent-filter&gt;
              &lt;action android:name="android.intent.action.MAIN" /&gt;
  
              &lt;category android:name="android.intent.category.LAUNCHER" /&gt;
          &lt;/intent-filter&gt;
      &lt;/activity&gt;
      &lt;activity
          android:name=".HomeMainActivity"
          android:label="@string/app_name"
          android:windowSoftInputMode="adjustPan"
          android:screenOrientation="portrait"
          &gt;
          &lt;intent-filter&gt;
              &lt;action android:name="android.intent.action.SEARCH" /&gt;
          &lt;/intent-filter&gt;
  
          &lt;meta-data
              android:name="android.app.searchable"
              android:resource="@layout/searchable" /&gt;
      &lt;/activity&gt;
      &lt;activity
          android:name=".HomeActivity"
          android:screenOrientation="portrait" /&gt;
      &lt;activity
          android:name=".DoctorsDetailsActivity"
          android:screenOrientation="portrait" /&gt;
      &lt;activity android:name=".ServiceActivity" /&gt;
  
      &lt;meta-data
          android:name="com.google.android.gms.version"
          android:value="@integer/google_play_services_version" /&gt;
  </code></pre>