private void RemoveLocationUpdatesWithCallback()
 {
     try
     {
         Task voidTask = mFusedLocationProviderClient.RemoveLocationUpdates(mLocationCallback);
         voidTask
         .AddOnSuccessListener(new RemoveLocCallUpdateOnSuccessListener())
         .AddOnFailureListener(new RemoveLocCallUpdateOnFailureListener());
     }
     catch (Exception e)
     {
         LocationLog.Error(TAG, "removeLocatonUpdatesWithCallback exception:" + e.Message);
     }
 }
 private void RequestLocationUpdatesWithCallback()
 {
     try
     {
         LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder();
         builder.AddLocationRequest(mLocationRequest);
         LocationSettingsRequest locationSettingsRequest = builder.Build();
         // Before requesting location update, invoke checkLocationSettings to check device settings.
         Task locationSettingsResponseTask = mSettingsClient.CheckLocationSettings(locationSettingsRequest);
         locationSettingsResponseTask
         .AddOnSuccessListener(new LocCallSettOnSuccessListenerImpl(mFusedLocationProviderClient, mLocationRequest, mLocationCallback))
         .AddOnFailureListener(new LocCallSettOnFailureListenerImpl(this));
     }
     catch (Exception e)
     {
         LocationLog.Error(TAG, "requestLocationUpdatesWithCallback exception:" + e.Message);
     }
 }
        public void OnFailure(Java.Lang.Exception e)
        {
            LocationLog.Error(TAG, "checkLocationSetting onFailure:" + e.Message);
            int statusCode = ((ApiException)e).StatusCode;

            switch (statusCode)
            {
            case LocationSettingsStatusCodes.ResolutionRequired:
                try
                {
                    //When the startResolutionForResult is invoked, a dialog box is displayed, asking you to open the corresponding permission.
                    ResolvableApiException rae = (ResolvableApiException)e;
                    rae.StartResolutionForResult(callbackActivity, 0);
                }
                catch (IntentSender.SendIntentException sie)
                {
                    LocationLog.Error(TAG, "PendingIntent unable to execute request.");
                }
                break;
            }
        }
 public void OnFailure(Java.Lang.Exception e)
 {
     LocationLog.Error(TAG, "removeLocatonUpdatesWithCallback exception:" + e.Message);
 }
 public void OnFailure(Java.Lang.Exception e)
 {
     LocationLog.Error(TAG, "requestLocationUpdatesWithCallback onFailure:" + e.Message);
 }