void FireContactPermissionCompletionHandler() { ABAuthorizationStatus status = ABAddressBook.GetAuthorizationStatus(); if (_contactPermissionCompletionHandler != null) { ClusterDialogResult userDialogResult = ClusterDialogResult.Granted; ClusterDialogResult systemDialogResult = ClusterDialogResult.Granted; if (status == ABAuthorizationStatus.NotDetermined) { userDialogResult = ClusterDialogResult.Denied; systemDialogResult = ClusterDialogResult.NoActionTaken; } else if (status == ABAuthorizationStatus.Authorized) { userDialogResult = ClusterDialogResult.Granted; systemDialogResult = ClusterDialogResult.Granted; } else if (status == ABAuthorizationStatus.Denied) { userDialogResult = ClusterDialogResult.Granted; systemDialogResult = ClusterDialogResult.Denied; } else if (status == ABAuthorizationStatus.Restricted) { userDialogResult = ClusterDialogResult.Granted; systemDialogResult = ClusterDialogResult.ParentallyRestricted; } _contactPermissionCompletionHandler((status == ABAuthorizationStatus.Authorized), userDialogResult, systemDialogResult); _contactPermissionCompletionHandler = null; } }
public void ShowContactsPermissionsWithTitle(string requestTitle, string message, string denyButtonTitle, string grantButtonTitle, ClusterPrePermissionCompletionHandler completionHandler) { if (requestTitle.Length == 0) { requestTitle = @"Access Contacts?"; } denyButtonTitle = GetTitleForType(ClusterTitleType.Deny, denyButtonTitle); grantButtonTitle = GetTitleForType(ClusterTitleType.Request, grantButtonTitle); ABAuthorizationStatus status = ABAddressBook.GetAuthorizationStatus(); if (status == ABAuthorizationStatus.NotDetermined) { _contactPermissionCompletionHandler = completionHandler; _preContactPermissionAlertView = new UIAlertView(requestTitle, message, new AlertViewDelegate(this), denyButtonTitle, grantButtonTitle); _preContactPermissionAlertView.Show(); } else { if (completionHandler != null) { completionHandler((status == ABAuthorizationStatus.Authorized), ClusterDialogResult.NoActionTaken, ClusterDialogResult.NoActionTaken); } } }
/// <summary> /// Gets the current authorization permissions for the address book. /// </summary> /// <returns>The current permission.</returns> public AddressBookPermission GetPermission() { ABAuthorizationStatus status = this.GetAuthorizationStatus(); if (status == ABAuthorizationStatus.Authorized) { return(AddressBookPermission.Authorized); } if (status == ABAuthorizationStatus.Denied) { return(AddressBookPermission.Denied); } if (status == ABAuthorizationStatus.NotDetermined) { return(AddressBookPermission.NotDetermined); } if (status == ABAuthorizationStatus.Restricted) { return(AddressBookPermission.Restricted); } throw new InvalidOperationException("Unexpected ABAuthorizationStatus (" + status + ")."); }
public void CheckAddressBookAccess() { ABAuthorizationStatus status = ABAddressBook.GetAuthorizationStatus(); switch (status) { case ABAuthorizationStatus.NotDetermined: ShowAlert(DataClass.Contacts, "not determined"); break; case ABAuthorizationStatus.Restricted: ShowAlert(DataClass.Contacts, "restricted"); break; case ABAuthorizationStatus.Denied: ShowAlert(DataClass.Contacts, "denied"); break; case ABAuthorizationStatus.Authorized: ShowAlert(DataClass.Contacts, "granted"); break; } }