Как получить возвращаемое значение включения GPS Location? - PullRequest
0 голосов
/ 10 июля 2019

Здесь я использую LocationServices для включения GPS на xamarin android

 try
            {
                MainActivity activity = global::Xamarin.Forms.Forms.Context as MainActivity;

                GoogleApiClient googleApiClient = new GoogleApiClient.Builder(activity).AddApi(LocationServices.API).Build();
                googleApiClient.Connect();
                LocationRequest locationRequest = LocationRequest.Create();
                locationRequest.SetPriority(LocationRequest.PriorityHighAccuracy);
                locationRequest.SetInterval(10000);
                locationRequest.SetFastestInterval(10000 / 2);

                LocationSettingsRequest.Builder
                    locationSettingsRequestBuilder = new LocationSettingsRequest.Builder()
                    .AddLocationRequest(locationRequest);
                locationSettingsRequestBuilder.SetAlwaysShow(false);
                LocationSettingsResult locationSettingsResult = await LocationServices.SettingsApi.CheckLocationSettingsAsync(
                  googleApiClient, locationSettingsRequestBuilder.Build());

                if (locationSettingsResult.Status.StatusCode == LocationSettingsStatusCodes.ResolutionRequired)
                {
                    locationSettingsResult.Status.StartResolutionForResult(activity, 0);
                }
            }
            catch (Exception ex)
            {

            }

Но я хочу получить возвращаемое значение из этого кода.

этот код откроет Местоположение включениявсплывающее окно, если пользователь включается, то я хочу получить значение bool от этого. Но откуда я могу получить значение bool для пользователя, принятого для включения при включении или нет.

вот всплывающее окно

enter image description here

как получить значение из этого всплывающего окна?

1 Ответ

0 голосов
/ 11 июля 2019

Согласно вашему описанию, вы хотите получить возвращаемое значение, когда нажимаете OK или Нет, СПАСИБО от всплывающего окна Location, я прав?

Если да, я предлагаю вам установить plugin.permission чтобы проверить статус.Просматривая следующий код, если вы нажмете ОК, status == PermissionStatus.Granted .Если вы нажмете НЕТ, спасибо, status = PermissionStatus.Denied .

 private async void OnCheck(object sender, EventArgs e)
    {
        try
        {
            var status = await CrossPermissions.Current.CheckPermissionStatusAsync<LocationPermission>();
            if (status != PermissionStatus.Granted)
            {
                if (await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(Permission.Location))
                {
                    await DisplayAlert("Need location", "Gunna need that location", "OK");
                }

                status = await CrossPermissions.Current.RequestPermissionAsync<LocationPermission>();
            }

            if (status == PermissionStatus.Granted)
            {
                //Query permission
            }
            else if (status != PermissionStatus.Unknown)
            {
                //location denied
            }
        }
        catch (Exception ex)
        {
            //Something went wrong
        }
    }
...