Exemple #1
0
        /// <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);
        }