xamarin - Xamarin 表单中运行时的相机和位置权限

标签 xamarin xamarin.forms xamarin.android

我创建了一个 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/

相关文章:

xamarin.forms - Xamarin Forms 数字键盘 - 启用空格和破折号按钮

c# - 绑定(bind)到 Entry.Text 的属性 setter 无限循环

c# - Xamarin - ListView 在 IOS 上显示数据

c# - 在 Xamarin.Forms 中访问相机

android - 使用 Google Material Design 的全宽 ActionBar

android - MvvmCross 和 Android 通知

android - 我想在 xamarin Android 中用红色星号向 textinputlayout 添加一个必填字段

android - MvvmCross fragment 绑定(bind)不起作用

ios - 在显示 UIAlertView 时处理摇动手势

xamarin - 将 Sinch 与 Xamarin 结合使用