title: Google Map not visible in android marshmallow(6.0)?
body: <p>I am developing an app, Here I am using google map. The google map shows current location to other devices but it doesn't shows current location to marshmallow(6.0).</p>
  
  <p>In marshmallow(6.0) when i open the app it shows map but doesn't shows current location.</p>
  
  <p>I want to show google map current location in all devices when i open an app, map has to show current location.</p>
  
  <p>How do i do this ?</p>
  
  <pre><code>java file
  public class Maps_Activity extends FragmentActivity implements
          OnMapReadyCallback,
          GoogleApiClient.ConnectionCallbacks,
          GoogleApiClient.OnConnectionFailedListener,
          GoogleMap.OnMarkerDragListener,
          GoogleMap.OnMapLongClickListener,
          View.OnClickListener {
  
      //Our Map
      private GoogleMap mMap;
      public static final int REQUEST_ID_ACCESS_COURSE_FINE_LOCATION = 100;
  
      //To store longitude and latitude from map
      private double longitude;
      private double latitude;
      String caddress;
  
      //Buttons
      private ImageButton buttonSave;
      private ImageButton buttonCurrent;
      private ImageButton buttonView;
  
      private Button btnProceed, btnskip, btnClocation;
  
      String strAdd;
      TextView tvmap,textview;
  
      private boolean loggedIn = false;
      public static String email;
  
  
      private ProgressDialog myProgress;
  
      //Google ApiClient
      private GoogleApiClient googleApiClient;
      SupportMapFragment mapFragment;
  
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_maps);
  
          tvmap=(TextView)findViewById(R.id.tv_map);
          textview=(TextView)findViewById(R.id.textView_euser);
  
          //progress bar
          myProgress = new ProgressDialog(this);
          myProgress.setTitle("Map Loading ...");
          myProgress.setMessage("Please wait...");
          myProgress.setCancelable(true);
          // Display Progress Bar.
          myProgress.show();
  
          // Obtain the SupportMapFragment and get notified when the map is ready to be used.
          mapFragment = (SupportMapFragment) getSupportFragmentManager()
                  .findFragmentById(R.id.map);
          mapFragment.getMapAsync(this);
  
          //Initializing googleapi client
          googleApiClient = new GoogleApiClient.Builder(this)
                  .addConnectionCallbacks(this)
                  .addOnConnectionFailedListener(this)
                  .addApi(LocationServices.API)
                  .build();
  
          //googleapi gps
  
      /*    googleApiClient = new GoogleApiClient
                  .Builder(this)
                  .enableAutoManage(this, 34992, this)
                  .addApi(LocationServices.API)
                  .addConnectionCallbacks(this)
                  .addOnConnectionFailedListener(this)
                  .build();
           locationChecker(googleApiClient, MapsActivity.this);   */
  
          //Initializing views and adding onclick listeners
          btnProceed=(Button)findViewById(R.id.button_proceed);
          btnskip=(Button)findViewById(R.id.button_skip);
          //    btnClocation=(Button)findViewById(R.id.button_clocation);
  
          btnProceed.setOnClickListener(this);
          btnskip.setOnClickListener(this);
          //    btnClocation.setOnClickListener(this);
  
          SharedPreferences sharedPreferences = getSharedPreferences(Config.SHARED_PREF_NAME, Context.MODE_PRIVATE);
          loggedIn = sharedPreferences.getBoolean(Config.LOGGEDIN_SHARED_PREF, false);
          email = sharedPreferences.getString(Config.EMAIL_SHARED_PREF, "Not Available");
          textview.setText(email);
  
      }
  
      @Override
      protected void onResume() {
  
          LocationManager mlocManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
          boolean enabled = mlocManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
  
          if(!enabled) {
              showDialogGPS();
          }
  
          super.onResume();
      }
  
      private void showDialogGPS() {
          AlertDialog.Builder builder = new AlertDialog.Builder(this);
          builder.setCancelable(false);
          builder.setTitle("Enable GPS");
          builder.setMessage("Please enable GPS");
          builder.setInverseBackgroundForced(true);
          builder.setPositiveButton("Enable", new DialogInterface.OnClickListener() {
              public void onClick(DialogInterface dialog, int which) {
                  startActivity(
                          new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS));
                  getCurrentLocation();
                  moveMap();
              }
          });
          builder.setNegativeButton("Ignore", new DialogInterface.OnClickListener() {
              public void onClick(DialogInterface dialog, int which) {
                  dialog.dismiss();
              }
          });
          AlertDialog alert = builder.create();
          alert.show();
      }
  
  
      @Override
      public void onClick(View v) {
          if(v == btnProceed){
          //    getCurrentLocation();
          //    moveMap();
              if (loggedIn) {
                  //We will start the Profile Activity
  
                  submitForm();
                  Intent i=new Intent(Maps_Activity.this,Search_ActivityND.class);
                  startActivity(i);
              }
  
          }
          else if(v == btnskip){
  
              btnclick_skip();
          }
  
      }
  
      //dalete alert
      private void btnclick_skip(){
  
          AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
          alertDialogBuilder.setMessage("Are you fine this Location?");
          alertDialogBuilder.setPositiveButton("Yes",
                  new DialogInterface.OnClickListener() {
                      @Override
                      public void onClick(DialogInterface arg0, int arg1) {
  
                          //   new JSONParserD().execute();
                          //Starting login activity
                          Intent intent = new Intent(Maps_Activity.this, Search_ActivityND.class);
                          startActivity(intent);
                          //    if (loggedIn) {
                          //        Intent intent = new Intent(MapsActivity.this, Home.class);
                          //        startActivity(intent);
                          //    }
  
                      }
                  });
  
          alertDialogBuilder.setNegativeButton("No",
                  new DialogInterface.OnClickListener() {
                      @Override
                      public void onClick(DialogInterface arg0, int arg1) {
  
                      }
                  });
  
          //Showing the alert dialog
          AlertDialog alertDialog = alertDialogBuilder.create();
          alertDialog.show();
      }
  
  
      //saving to database
      private void submitForm() {
  
          caddress = tvmap.getText().toString();
          email = textview.getText().toString();
          //  Toast.makeText(this, "Signing up...", Toast.LENGTH_SHORT).show();
          new MapAsync(this).execute(caddress,email);
      }
  
      @Override
      protected void onStart() {
          googleApiClient.connect();
          super.onStart();
      }
  
      @Override
      protected void onStop() {
          googleApiClient.disconnect();
          super.onStop();
      }
  
      //Getting current location
      private void getCurrentLocation() {
          mMap.clear();
          //Creating a location object
          if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED &amp;&amp; ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
              // TODO: Consider calling
              //    ActivityCompat#requestPermissions
              // here to request the missing permissions, and then overriding
              //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
              //                                          int[] grantResults)
              // to handle the case where the user grants the permission. See the documentation
              // for ActivityCompat#requestPermissions for more details.
              return;
          }
          Location location = LocationServices.FusedLocationApi.getLastLocation(googleApiClient);
  
         if (location != null) {
              //Getting longitude and latitude
              longitude = location.getLongitude();
              latitude = location.getLatitude();
  
              //    tvmap.setText("Latitude:" + location.getLatitude() + ", Longitude:" + location.getLongitude());
  
              strAdd = getCompleteAddressString(latitude, longitude);
              tvmap.setText("Current Address : " + strAdd);
  
              //moving the map to location
              moveMap();
          }
  
      }
  
      //Function to move the map
      private void moveMap() {
         //String to display current latitude and longitude
          String msg = latitude + ", "+longitude;
  
          //Creating a LatLng Object to store Coordinates
          LatLng latLng = new LatLng(latitude, longitude);
  
          //Adding marker to map
          mMap.addMarker(new MarkerOptions()
                  .position(latLng) //setting position
                  .draggable(true) //Making the marker draggable
                  .title("Current Location")); //Adding a title
  
          //Moving the camera
          mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
  
          //Animating the camera
          mMap.animateCamera(CameraUpdateFactory.zoomTo(15));
  
      }
  
      @Override
      public void onMapReady(GoogleMap googleMap) {
  
          mMap = googleMap;
          LatLng latLng = new LatLng(-34, 151);
          mMap.addMarker(new MarkerOptions().position(latLng).draggable(true));
          mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
          mMap.setOnMarkerDragListener(this);
          mMap.setOnMapLongClickListener(this);
  
      }
  
      @Override
      public void onConnected(Bundle bundle) {
          getCurrentLocation();
          myProgress.dismiss();
      }
  
      @Override
      public void onConnectionSuspended(int i) {
  
      }
  
      @Override
      public void onConnectionFailed(ConnectionResult connectionResult) {
  
      }
  
      @Override
      public void onMapLongClick(LatLng latLng) {
          //Clearing all the markers
          mMap.clear();
  
          //Adding a new marker to the current pressed position
          mMap.addMarker(new MarkerOptions()
                  .position(latLng)
                  .draggable(true));
      }
  
      @Override
      public void onMarkerDragStart(Marker marker) {
  
      }
  
      @Override
      public void onMarkerDrag(Marker marker) {
  
      }
  
      @Override
      public void onMarkerDragEnd(Marker marker) {
          //Getting the coordinates
          latitude = marker.getPosition().latitude;
          longitude = marker.getPosition().longitude;
  
          //Moving the map
          moveMap();
      }
  
      private String getCompleteAddressString(double LATITUDE, double LONGITUDE) {
          String strAdd = "";
          Geocoder geocoder = new Geocoder(this, Locale.getDefault());
          try {
              List&lt;Address&gt; addresses = geocoder
                      .getFromLocation(LATITUDE, LONGITUDE, 1);
              if (addresses != null) {
                  android.location.Address returnedAddress = addresses.get(0);
                  StringBuilder strReturnedAddress = new StringBuilder("");
  
                  for (int i = 0; i &lt; returnedAddress.getMaxAddressLineIndex(); i++) {
                      strReturnedAddress
                              .append(returnedAddress.getAddressLine(i)).append(
                              "\n");
                  }
                  strAdd = strReturnedAddress.toString();
                  //   Log.w("My Current loction address",
                  //           "" + strReturnedAddress.toString());
              } else {
                  // Log.w("My Current loction address", "No Address returned!");
              }
          } catch (Exception e) {
              e.printStackTrace();
              //  Log.w("My Current loction address", "Canont get Address!");
          }
          return strAdd;
      }
    }
  
  
   manifest file
  
      apply plugin: 'com.android.application'
  
      android {
          compileSdkVersion 23
          buildToolsVersion "24.0.0"
  
          defaultConfig {
              applicationId "com.example.user.mangoair_t"
              minSdkVersion 14
              targetSdkVersion 23
              versionCode 1
              versionName "1.0"
              multiDexEnabled true
          }
  
          buildTypes {
              release {
                  minifyEnabled false
                  proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
              }
          }
      }
  
  
      android {
          useLibrary 'org.apache.http.legacy'
      }
  
      dependencies {
  
          testCompile 'junit:junit:4.12'
          compile 'com.android.support:appcompat-v7:23.4.0'
          compile 'com.android.support:design:23.4.0'
  
          compile 'com.google.http-client:google-http-client-android:+'
  
          compile 'com.google.api-client:google-api-client-android:+'
  
          compile 'com.google.api-client:google-api-client-gson:+'
  
          compile 'com.google.code.gson:gson:2.2.4'
  
          compile fileTree(dir: 'libs', include: ['*.jar'])
          compile 'com.android.support:appcompat-v7:23.1.1'
          compile fileTree(include: ['*.jar'], dir: 'libs')
          compile "cz.msebera.android:httpclient:4.4.1.1"
          compile group: 'cz.msebera.android' , name: 'httpclient', version: '4.4.1.1'
  
          compile 'com.mcxiaoke.volley:library-aar:1.0.0'
  
          compile 'com.android.support:design:23.2.0'
          testCompile 'junit:junit:4.12'
          compile 'com.android.support:appcompat-v7:23.2.0'
          compile 'com.android.support:design:23.2.0'
  
        //  compile 'com.google.android.gms:play-services:9.0.2'
          compile 'com.google.android.gms:play-services:8.4.0'
          compile 'com.android.support:appcompat-v7:23.4.0'
  
          compile 'com.android.support:multidex:1.0.0'
  
      }
  </code></pre>