Esempio n. 1
0
 public static PermissionStatus ToPermissionStatus(this PluginPermissionStatus permissionStatus)
 {
     return(permissionStatus switch
     {
         PluginPermissionStatus.Denied => PermissionStatus.Denied,
         PluginPermissionStatus.Disabled => PermissionStatus.Denied,
         PluginPermissionStatus.Granted => PermissionStatus.Granted,
         PluginPermissionStatus.Restricted => PermissionStatus.Denied,
         PluginPermissionStatus.Unknown => PermissionStatus.Unknown,
         _ => throw new InvalidEnumArgumentException(
             nameof(permissionStatus),
             (int)permissionStatus,
             permissionStatus.GetType())
     });
Esempio n. 2
0
        async void btnAndroidPermissionV3_Clicked(object sender, EventArgs e)
        {
            try
            {
                Xamarin.Essentials.PermissionStatus permission = await Xamarin.Essentials.Permissions.CheckStatusAsync <Xamarin.Essentials.Permissions.Camera>();

                if (permission != Xamarin.Essentials.PermissionStatus.Granted)
                {
                    permission = await Xamarin.Essentials.Permissions.RequestAsync <Xamarin.Essentials.Permissions.Camera>();
                }

                if (permission != Xamarin.Essentials.PermissionStatus.Granted)
                {
                    System.Diagnostics.Debug.WriteLine("摄像头权限授权失败");
                    return;
                }

                permission = await Xamarin.Essentials.Permissions.CheckStatusAsync <Xamarin.Essentials.Permissions.Microphone>();

                if (permission != Xamarin.Essentials.PermissionStatus.Granted)
                {
                    permission = await Xamarin.Essentials.Permissions.RequestAsync <Xamarin.Essentials.Permissions.Microphone>();
                }

                if (permission != Xamarin.Essentials.PermissionStatus.Granted)
                {
                    System.Diagnostics.Debug.WriteLine("麦克风权限授权失败");
                    return;
                }

                permission = await Xamarin.Essentials.Permissions.CheckStatusAsync <Xamarin.Essentials.Permissions.StorageRead>();

                if (permission != Xamarin.Essentials.PermissionStatus.Granted)
                {
                    permission = await Xamarin.Essentials.Permissions.RequestAsync <Xamarin.Essentials.Permissions.StorageRead>();
                }

                if (permission != Xamarin.Essentials.PermissionStatus.Granted)
                {
                    System.Diagnostics.Debug.WriteLine("读取外部存储权限授权失败");
                    return;
                }

                permission = await Xamarin.Essentials.Permissions.CheckStatusAsync <Xamarin.Essentials.Permissions.StorageWrite>();

                if (permission != Xamarin.Essentials.PermissionStatus.Granted)
                {
                    permission = await Xamarin.Essentials.Permissions.RequestAsync <Xamarin.Essentials.Permissions.StorageWrite>();
                }

                if (permission != Xamarin.Essentials.PermissionStatus.Granted)
                {
                    System.Diagnostics.Debug.WriteLine("读取外部存储权限授权失败");
                    return;
                }

                permission = await Xamarin.Essentials.Permissions.CheckStatusAsync <Xamarin.Essentials.Permissions.StorageWrite>();

                if (permission != Xamarin.Essentials.PermissionStatus.Granted)
                {
                    permission = await Xamarin.Essentials.Permissions.RequestAsync <Xamarin.Essentials.Permissions.StorageWrite>();
                }

                if (permission != Xamarin.Essentials.PermissionStatus.Granted)
                {
                    System.Diagnostics.Debug.WriteLine("写入外部存储权限授权失败");
                    return;
                }


                permission = await Xamarin.Essentials.Permissions.CheckStatusAsync <Xamarin.Essentials.Permissions.LocationWhenInUse>();

                if (permission != Xamarin.Essentials.PermissionStatus.Granted)
                {
                    permission = await Xamarin.Essentials.Permissions.RequestAsync <Xamarin.Essentials.Permissions.LocationWhenInUse>();
                }

                if (permission != Xamarin.Essentials.PermissionStatus.Granted)
                {
                    System.Diagnostics.Debug.WriteLine("获取GPS信息(在使用App期间)权限授权失败");
                    return;
                }
            }
            catch (Exception ex)
            {
                await DisplayAlert(title : "捕获错误", message : ex.GetFullInfo(), cancel : "确定");
            }
        }