Этот выпуск был открыт в прошлом году, это ответ Джеймса Монтемагно:
Сейчас он запросит у вас разрешение на основании того, как система его обрабатывает. В iOS разрешение можно запросить только один раз, а в Android - несколько раз. Если пользователь откажется, вы получите исключение, в котором отказано в разрешении.
Вы можете использовать Permission Plugin сегодня для обработки проверки и запроса.
https://github.com/jamesmontemagno/PermissionsPlugin
Я открою новое предложение для разрешений, поскольку они немного хитры.
Итак, вы можете использовать плагин Permissions для Xamarin , чтобы проверить разрешение перед тем, как спрашивать. вот так:
var status = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Location);
if (status != PermissionStatus.Granted)
{
if (await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(Permission.Location))
{
await DisplayAlert("Need location", "Gunna need that location", "OK");
}
var results = await CrossPermissions.Current.RequestPermissionsAsync(Permission.Location);
//Best practice to always check that the key exists
if (results.ContainsKey(Permission.Location))
status = results[Permission.Location];
}
if (status == PermissionStatus.Granted)
{
try
{
var location = await Geolocation.GetLastKnownLocationAsync();
if (location != null)
{
await Navigation.PushModalAsync(Nav_to_MAP);
}
}
catch (PermissionException pEx)
{
// if deny location
}
}
См. Документы о том, как его настроить