#xamarin #xamarin.forms #xamarin.android
Вопрос:
Я создал приложение Xamarin forms, и для него требуется два разрешения, т. е. i)Местоположение и ii)Камера.
Мне нужно получить оба разрешения во время выполнения, но, к сожалению, я могу получить только одно разрешение одновременно при запуске приложения.
Есть ли какое-либо решение для запроса обоих разрешений одновременно во время выполнения.
Комментарии:
1. Привет! Это хороший совет-запрашивать разрешение, когда оно требуется приложению, а не когда приложение запускается. Кроме того, как вы проверяете и запрашиваете разрешения? Вы используете Xamarin. Предметы первой необходимости?
2. Спасибо вам за ваш совет. и я не использую функцию разрешений Xamarin. Основы Я запросил разрешение во время выполнения у проекта Android
Ответ №1:
Это хороший совет-не запрашивать разрешения при запуске приложения, просто потому, что пользователь может не знать, для чего оно предназначено.
Также проверьте и попросите разрешения, когда оно вам понадобится. Например, спросите разрешение камеры непосредственно перед открытием камеры.
Вы можете сделать все это с помощью Xamarin.Предметы первой необходимости. Если в вашем проекте его нет, следуйте инструкциям по его настройке в документации.
И тогда вы сможете делать все в своем общем коде (для всех платформ!)
Есть масса примеров, я напишу один. Вы можете запрашивать разрешения одно за другим или в два разных момента
public async void GoToCameraPage()
{
var status = await Permissions.CheckStatusAsync<Permissions.Camera>();
if (status == PermissionStatus.Granted)
{
//We have permission!
await Navigation.PushAsync(new CameraPage());
}
else
{
//Let the user know why
await DisplayAlert("Permission needed", "I will need Camera permission for this action", "Ok");
//Ask for the permission
status = await Permissions.RequestAsync<Permissions.LocationWhenInUse>();
if (status == PermissionStatus.Granted)
{
//YES, now we have permission
}
else
{
//Ok, maybe I will ask again
}
}
}
Комментарии:
1. Спасибо за ответ, я получил свой ответ от here-docs.microsoft.com/en-us/answers/questions/590593 /…