Não é possível ativar o local no android api23?

Eu usei o código a seguir e o diálogo que solicita permissão é exibido conforme o esperado. Mas quando clico em "permitir", não faz nada. A mensagem de log não aparece como se a permissão não tivesse sido concedida; por isso, fui aos meus parâmetros para verificar se o local está "ativado" e "desativado". Não deveria estar ativado porque concedeu acesso ao aplicativo ao meu local? Se eu ativá-lo manualmente e depois executar o aplicativo novamente, uma vez que ele solicite minha permissão, ele funcionará e mostrará a mensagem de log, mas não é o objetivo de solicitar permissões (via diálogo) para ativar o local (quando está desativado) se o usuário clicar em "permitir"? Estou fazendo algo errado ? Devo mencionar que estou executando o aplicativo na api23

é o código no meuOncreate:

 mApiClient = new GoogleApiClient.Builder(this)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .addApi(LocationServices.API)
                .build();

 mApiClient.connect();

    // Create the LocationRequest object
        mLocationRequest = LocationRequest.create()
                .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY)
                .setInterval(10 * 1000)        // 10 seconds, in milliseconds
                .setFastestInterval(1 * 1000); // 1 second, in milliseconds

e este é o meuOnConnected método:

    public void onConnected(@Nullable Bundle bundle) {
            //start the service
//checking and asking for permission

            if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
                if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
                    ActivityCompat.requestPermissions(this,
                            new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
                            MY_PERMISSION_ACCESS_FINE_LOCATION);
                }
                //   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(mApiClient);

            if (location == null) {
                LocationServices.FusedLocationApi.requestLocationUpdates(mApiClient, mLocationRequest, this);

            } else {
                //If everything went fine lets get latitude and longitude
                currentLatitude = location.getLatitude();
                currentLongitude = location.getLongitude();
                Log.v("currentLatitude",currentLatitude + " WORKS " + currentLongitude + "");
            }

    }

questionAnswers(2)

yourAnswerToTheQuestion