微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Xamarin.Forms android检查用户是否单击了“拒绝”并且不再询问

如何解决Xamarin.Forms android检查用户是否单击了“拒绝”并且不再询问

在我的xamarin.forms应用中。我正在使用xamarin.Essentials来检查和请求权限。我可以检查是否在android中授予了权限。我面临的问题是,当用户单击“拒绝并不再询问”时,状态仍然显示Denied。我们如何知道用户是否选择了Deny and Dont ask,以便根据此显示警告消息。任何帮助表示赞赏。

解决方法

要获取Xamarin.Forms中的检查和请求权限,您还可以使用nuget中的插件Permission.Plugin

Deny and Don't ask again选项仅在您第二次拒绝请求时出现。但是,没有这样的特定状态可以对其进行标记。

作为一种解决方法,我们可以定义一个自定义属性以节省我们拒绝的时间。

int DenyCount = 0;

        private async void FabOnClick(object sender,EventArgs eventArgs)
        {
            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");
                    DenyCount++;

                    if(DenyCount>=2)
                    {
                        //...
                    }

                }

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

            if (status == PermissionStatus.Granted)
            {
                //Query permission
                DenyCount = 0;  // reset the value of DenyCount
            }
            else if (status == PermissionStatus.Restricted)
            {
                //location denied
            }


        }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。