title: setMyLocationEnabled() error on Android 6
body: <p>I'm trying to make that when I load my map activity, a "my location" button will appear. This is my code, and the button which makes my activity to zoom in to my current location isn't appearing. What do I need to change in my code to make it work?</p>
  
  <pre><code>public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
  private static final String FIREBASE_URL="https://********.firebaseio.com/";
  private Firebase firebaseRef;
  private LocationManager locationManager;
  private GoogleMap mMap;
  SupportMapFragment mapFrag;
  boolean bPermissionGranted;
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_maps2);
      Firebase.setAndroidContext(this);
      firebaseRef = new Firebase(FIREBASE_URL);
      if (android.os.Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.M) {
          bPermissionGranted = checkLocationPermission();
      }
      // Obtain the SupportMapFragment and get notified when the map is ready to be used.
      SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
              .findFragmentById(R.id.map);
      mapFragment.getMapAsync(this);
  
  
  
  
  
      }
  private void setUpMapIfNeeded() {
      if (mMap == null) {
          // Try to obtain the map from the SupportMapFragment.
          mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
                  .getMap();
  
          if (mMap != null) {
  
  
              CameraUpdate center = CameraUpdateFactory.newLatLng(new LatLng(32.065483, 34.824550));
              CameraUpdate zoom = CameraUpdateFactory.zoomTo(10);
              mMap.moveCamera(center);
              mMap.animateCamera(zoom);
  
          }
      }
  }
  
  public static final int MY_PERMISSIONS_REQUEST_LOCATION = 99;
  public boolean checkLocationPermission(){
      if (ContextCompat.checkSelfPermission(this,
              Manifest.permission.ACCESS_FINE_LOCATION)
              != PackageManager.PERMISSION_GRANTED) {
  
          // Should we show an explanation?
          if (ActivityCompat.shouldShowRequestPermissionRationale(this,
                  Manifest.permission.ACCESS_FINE_LOCATION)) {
  
              // Show an expanation to the user *asynchronously* -- don't block
              // this thread waiting for the user's response! After the user
              // sees the explanation, try again to request the permission.
              //  TODO: Prompt with explanation!
  
              //Prompt the user once explanation has been shown
              ActivityCompat.requestPermissions(this,
                      new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
                      MY_PERMISSIONS_REQUEST_LOCATION);
  
          } else {
              // No explanation needed, we can request the permission.
              ActivityCompat.requestPermissions(this,
                      new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
                      MY_PERMISSIONS_REQUEST_LOCATION);
          }
          return false;
      } else {
          return true;
      }
  }
  
  
  
   @Override
   public void onRequestPermissionsResult(int requestCode,
                                         String permissions[], int[] grantResults) {
      switch (requestCode) {
          case MY_PERMISSIONS_REQUEST_LOCATION: {
              // If request is cancelled, the result arrays are empty.
              if (grantResults.length &gt; 0
                      &amp;&amp; grantResults[0] == PackageManager.PERMISSION_GRANTED) {
  
                  // permission was granted, yay!
                  if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED &amp;&amp;
                          ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
                      mMap.setMyLocationEnabled(true);
                  }
              } else {
                  // permission denied, boo! Disable the
                  // functionality that depends on this permission.
                  Toast.makeText(this, "permission denied", Toast.LENGTH_LONG).show();
              }
              return;
          }
  
      }
  }
  
  
  @Override
  public void onMapReady(final GoogleMap googleMap) {
  
      mMap=googleMap;
  
      mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
  
      if (android.os.Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.M) {
          if (bPermissionGranted) {
              //User has previously accepted this permission
              if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED &amp;&amp;
                      ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
                  mMap.setMyLocationEnabled(true);
              }
          }
      }
      else {
          //Not in api-23, no need to prompt
          mMap.setMyLocationEnabled(true);
      }
  
      firebaseRef.addListenerForSingleValueEvent(new ValueEventListener() {
          @Override
          public void onDataChange(DataSnapshot dataSnapshot) {
  
              for (DataSnapshot child : dataSnapshot.child("users").getChildren()) {
  
  
                  String rightLocation = child.child("location_right").getValue().toString();
                  String leftLocation = child.child("location_left").getValue().toString();
  
                  double location_left = Double.parseDouble(leftLocation);
                  double location_right = Double.parseDouble(rightLocation);
                  String party_title = child.child("party/party_title").getValue().toString();
                  LatLng cod = new LatLng(location_left, location_right);
                  googleMap.addMarker(new MarkerOptions().position(cod).title(party_title));
  
  
              }
          }
  
          @Override
          public void onCancelled(FirebaseError firebaseError) {
  
          }
      });
  }
  }
  </code></pre>