1. Add the AddressBookUI.framework into Project
2. Import the header file
#import <AddressBook/AddressBook.h>
3. Add these code for where u want
/* Getting Contact Details (Single Phone Number - Name, Phone Number, Email */
-(void)getContacts
{
ABAddressBookRef addressBookRef = ABAddressBookCreateWithOptions(NULL, NULL);
if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined)
{
ABAddressBookRequestAccessWithCompletion(addressBookRef, ^(bool granted, CFErrorRef error)
{
});
}
else if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusAuthorized)
{
CFErrorRef *error = NULL;
ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, error);
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(addressBook);
CFIndex numberOfPeople = ABAddressBookGetPersonCount(addressBook);
for(int i = 0; i < numberOfPeople; i++)
{
ABRecordRef person = CFArrayGetValueAtIndex( allPeople, i );
ABMultiValueRef email = ABRecordCopyValue(person, kABPersonEmailProperty);
ABMultiValueRef phoneNumbers = ABRecordCopyValue(person, kABPersonPhoneProperty);
NSNumber *recordId = [NSNumber numberWithInteger:ABRecordGetRecordID(person)];
NSString *firstName = (__bridge NSString *)(ABRecordCopyValue(person, kABPersonFirstNameProperty));
NSString *phoneNumber = (__bridge_transfer NSString *) ABMultiValueCopyValueAtIndex(phoneNumbers, 0);
NSString *EmailId = (__bridge_transfer NSString *) ABMultiValueCopyValueAtIndex(email, 0);
NSString *GroupName=(__bridge_transfer NSString *) ABMultiValueCopyLabelAtIndex(phoneNumbers, 0);
GroupName = [GroupName stringByReplacingOccurrencesOfString:@"_$!<" withString:@""];
GroupName = [GroupName stringByReplacingOccurrencesOfString:@">!$_" withString:@""];
NSLog(@"Name: %@ | Phone Number(%@): %@ | Email: %@ | Record ID: %@", firstName, GroupName, phoneNumber, EmailId, recordId);
}
}
}
/* Getting Contact Details (Multiple Phone Numbers) - Name, Phone Number */
-(void)getContacts
{
ABAddressBookRef addressBookRef = ABAddressBookCreateWithOptions(NULL, NULL);
if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined)
{
ABAddressBookRequestAccessWithCompletion(addressBookRef, ^(bool granted, CFErrorRef error)
{
});
}
else if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusAuthorized)
{
CFErrorRef *error = NULL;
ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, error);
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(addressBook);
CFIndex numberOfPeople = ABAddressBookGetPersonCount(addressBook);
for(int i = 0; i < numberOfPeople; i++)
{
ABRecordRef person = CFArrayGetValueAtIndex( allPeople, i );
ABMultiValueRef email = ABRecordCopyValue(person, kABPersonEmailProperty);
ABMultiValueRef phoneNumbers = ABRecordCopyValue(person, kABPersonPhoneProperty);
NSNumber *recordId = [NSNumber numberWithInteger:ABRecordGetRecordID(person)];
for (CFIndex i = 0; i < ABMultiValueGetCount(phoneNumbers); i++)
{
NSString *first_Name = (__bridge NSString *)(ABRecordCopyValue(person, kABPersonFirstNameProperty));
NSString *last_Name = (__bridge NSString *)(ABRecordCopyValue(person, kABPersonLastNameProperty));
NSString *str_Name = [NSString stringWithFormat:@"%@ %@", first_Name, last_Name];
NSString *phone_Number = (__bridge_transfer NSString *) ABMultiValueCopyValueAtIndex(phoneNumbers, i);
NSString *Group_Name=(__bridge_transfer NSString *) ABMultiValueCopyLabelAtIndex(phoneNumbers, i);
Group_Name = [Group_Name stringByReplacingOccurrencesOfString:@"_$!<" withString:@""];
Group_Name = [Group_Name stringByReplacingOccurrencesOfString:@">!$_" withString:@""];
NSLog(@"Name: %@ | Phone Number(%@): %@ | Record ID: %@", str_Name, GroupName, phone_Number, recordId);
}
}
}
}
No comments:
Post a Comment