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