如何解决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 举报,一经查实,本站将立刻删除。