Плагин разрешений Xamarin RequestPermissionsAsync не возвращается - PullRequest
0 голосов
/ 14 мая 2018

Я пытался открыть билеты для этого в аккаунте создателей на github, но он просто продолжал закрывать его без подтверждения, что проблема была решена.

Я пытаюсь реализовать этот плагин для разрешений форм xamarin, и все работает хорошо, за исключением одной вещи, когда я пытаюсь запросить разрешение с помощью реального устройства, задача никогда не возвращается, независимо от того, Пользователь разрешил или отклонил запрос. Когда я перезапускаю проект, я вижу, что последнее действие пользователя относительно разрешения вступило в силу, однако в момент запроса функция просто зависает, и я не могу принимать решения на основе того, что выбрал пользователь. Ниже приведен фрагмент кода

var status = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Location);
                if (status != PermissionStatus.Granted)
                {
                    //This line never returns
                    var results = await CrossPermissions.Current.RequestPermissionsAsync(Permission.Location);
                    status = results[Permission.Location];
                }

Может быть, кто-нибудь здесь может пролить свет? Любая помощь будет оценена. Спасибо.

1 Ответ

0 голосов
/ 27 октября 2018

Помимо указания разрешения в манифесте Android и инициализации CurrentActivity, не забудьте также переопределить метод OnRequestPermissionsResult в вашей MainActivity, чтобы результаты разрешений передавались в PermissionsImplementation, как описано в плагине страница:

    public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Permission[] grantResults)
    {
        Plugin.Permissions.PermissionsImplementation.Current.OnRequestPermissionsResult(requestCode, permissions, grantResults);

        base.OnRequestPermissionsResult(requestCode, permissions, grantResults);    
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...