首页 > 解决方案 > 请求位置权限不返回(Xamarin 表单)

问题描述

如果被拒绝,我正在请求位置权限,但是在发出请求并且用户点击以拒绝或允许权限后没有返回任何内容,线路 status = results[Permission.Location];永远不会被击中,我认为这将是一个等待呼叫,任何人都可以告诉我这是为什么?

我应该提一下,如果我在它看起来什么也没做之后立即再次调用此代码,那么线路await vm.RefreshCampaigns();被击中,因此正在设置权限,只是调用没有返回。我在共享项目中运行此代码。

private async void GrantPermission(object sender, ItemTappedEventArgs e)
{
    try
    {
        var status = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Location);
        if (status != PermissionStatus.Granted)
        {
            var results = await CrossPermissions.Current.RequestPermissionsAsync(Permission.Location);
            status = results[Permission.Location];
        }

        if (status == PermissionStatus.Granted)
        {
            vm.ShowPermissionWarning = false;
            await vm.RefreshCampaigns();
        }
    }
    catch (Exception ex)
    {
        Crashes.TrackError(ex);
    }
}

标签: c#xamarin.forms

解决方案


推荐阅读