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()) });
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 : "确定"); } }