public static async Task <bool> RequestPermission(Plugin.Permissions.Abstractions.Permission permission) { var status = await CrossPermissions.Current.CheckPermissionStatusAsync(permission); if (status != Plugin.Permissions.Abstractions.PermissionStatus.Granted) { var requestpermissionresult = await CrossPermissions.Current.RequestPermissionsAsync(Plugin.Permissions.Abstractions.Permission.Contacts); if (requestpermissionresult[Plugin.Permissions.Abstractions.Permission.Contacts] != Plugin.Permissions.Abstractions.PermissionStatus.Granted) { return(false); } else { return(true); } } else { return(true); } }
/// <summary> /// Generic method to request any permission /// </summary> /// <param name="permission">Permission to request</param> /// <returns>Task, so the request can be made asynchronously</returns> public static async Task <Plugin.Permissions.Abstractions.PermissionStatus> RequestPermission(Plugin.Permissions.Abstractions.Permission permission) { var status = await CrossPermissions.Current.CheckPermissionStatusAsync(permission); if (status != Plugin.Permissions.Abstractions.PermissionStatus.Granted || DevFlags.ForcePermissionRequest) { if (await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(permission) || DevFlags.ForcePermissionRequest) { Logger.Log("Asking for permission: " + permission.ToString()); var results = await CrossPermissions.Current.RequestPermissionsAsync(new Plugin.Permissions.Abstractions.Permission[] { permission }); status = results[permission]; } } return(status); }