我创建了一个 Xamarin 表单应用程序,它需要两个权限,即 i)Location 和 ii)Camera。
我需要在运行时获得这两种权限,但不幸的是,当应用程序启动时我一次只能获得一种权限。
是否有任何解决方案可以在运行时同时请求这两种权限。
最佳答案
最好不要在应用程序启动时请求权限,因为用户可能不知道它的用途。
在需要时还要检查并请求许可。例如,在打开相机之前请求相机权限。
您可以使用Xamarin.Essentials来完成这一切。如果您的项目没有它,请按照文档说明进行设置。
然后您可以在共享代码中执行所有操作(适用于所有平台!)
例子有很多,我就写一个。您可以依次请求权限,也可以在两个不同的时刻请求权限
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
}
}
}
关于xamarin - Xamarin 表单中运行时的相机和位置权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69569943/