protected void BuildLocationSettingsRequest () { LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder (); builder.AddLocationRequest (mLocationRequest); mLocationSettingsRequest = builder.Build (); }
private void BuildGoogleLocationSettingsRequest() { LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder(); builder.AddLocationRequest(_googleLocationRequest); _googleLocationSettingsRequest = builder.Build(); }
protected void BuildLocationSettingsRequest() { LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder(); builder.AddLocationRequest(mLocationRequest); mLocationSettingsRequest = builder.Build(); }
private async void OnClickRequestLocationUpdates(object sender, EventArgs eventArgs) { string Tag = "RequestLocationUpdates"; LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder(); builder.AddLocationRequest(locationRequest); LocationSettingsRequest request = builder.Build(); //Before requesting location update, invoke CheckLocationSettings to check device settings. var locationSettingsResponseTask = settingsClient.CheckLocationSettingsAsync(request); try { await locationSettingsResponseTask; if (locationSettingsResponseTask.IsCompleted && locationSettingsResponseTask != null) { LocationSettingsResponse response = locationSettingsResponseTask.Result; var requestLocationUpdatesTask = fusedLocationProviderClient.RequestLocationUpdatesAsync(locationRequest, GetPendingIntent()); try { await requestLocationUpdatesTask; if (requestLocationUpdatesTask.IsCompleted) { log.Info(Tag, "RequestLocationUpdates with intent succeeded."); } else { log.Error(Tag, $"RequestLocationUpdates with intent failed: {requestLocationUpdatesTask.Exception.Message}"); } } catch (Exception e) { if (e is ApiException apiException) { if (apiException.StatusCode == 10803) { //PermissionDenied Utils.RequestLocationPermission(this); } } else { log.Error(Tag, $"RequestLocationUpdates with intent exception: {e.Message}"); } } } else { var exception = locationSettingsResponseTask.Exception; log.Error(Tag, $"CheckLocationSetting Failed: {exception.Message}"); } } catch (Exception e) { if (e is ApiException apiException) { log.Error(Tag, $"CheckLocationSetting Failed. ErrorMessage: {apiException.Message} ErrorCode: {apiException.StatusCode}"); int statuesCode = apiException.StatusCode; if (statuesCode == LocationSettingsStatusCodes.ResolutionRequired) { try { //When the startResolutionForResult is invoked, a dialog box is displayed, asking you to open the corresponding permission. ResolvableApiException resolvableApiException = (ResolvableApiException)e; resolvableApiException.StartResolutionForResult(this, 0); } catch (IntentSender.SendIntentException sendIntentException) { log.Error(Tag, "PendingIntent unable to execute request."); } } } else { log.Error(Tag, $"CheckLocationSetting Failed: {e.Message}"); } } }
public Task <LocationSettingsResponse> CheckLocationSettingsAsync(LocationSettingsRequest locationSettings) { return(CheckLocationSettings(locationSettings).AsAsync <LocationSettingsResponse>()); }
public static async Task <LocationSettingsResult> CheckLocationSettingsAsync(this ISettingsApi api, GoogleApiClient client, LocationSettingsRequest request) { return((await api.CheckLocationSettings(client, request)).JavaCast <Android.Gms.Location.LocationSettingsResult> ()); }