1.第一步:
第二步:
#import <AddressBook/AddressBook.h>
第三步:
if (&ABAddressBookRequestAccessWithCompletion != NULL) {
ABAddressBookRef abRef = ABAddressBookCreateWithOptions(NULL, NULL);
if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined) {
//如果該應用從未申請過權限,申請權限
ABAddressBookRequestAccessWithCompletion(abRef, ^(bool granted, CFErrorRef error) {
//根據granted參數判斷用戶是否同意授予權限
if (granted) {
//查詢所有,這裏我們可以用來進行下一步操作
[self readContrants];
}
});
} else if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusAuthorized) {
//如果權限已經被授予
//查詢所有,這裏我們可以用來進行下一步操作
[self readContrants];
} else {
//如果權限被收回,只能提醒用戶去系統設置菜單中打開
UIAlertView *av = [[UIAlertView alloc]
initWithTitle:@"提示"
message:@"無限美麗訪問系統通訊錄的權限已被關閉,請到手機系統[設置]中開啓權限,此項有助於爲你提高審批通過率及信用額度"
delegate:nil
cancelButtonTitle:nil
otherButtonTitles:@"OK",nil];
[av show];
}
if(abRef){
CFRelease(abRef);
}
}
}
-(void)readContrants
{
ABAddressBookRef addressBook = ABAddressBookCreate();
NSArray * myContacts = [NSArray arrayWithArray:(__bridge_transfer NSArray*)
ABAddressBookCopyArrayOfAllPeople(addressBook)];
NSLog(@"%@",myContacts);
int count=myContacts.count>=20?20:(int)myContacts.count;
for (int i=0; i<count; i++) {
ABRecordRef person =(__bridge ABRecordRef)(myContacts[i]);
//objc_unretainedPointer([myContacts objectAtIndex:i]);
ABMultiValueRef phoneNumbers = ABRecordCopyValue(person,
kABPersonPhoneProperty);
NSString * phone= (__bridge NSString *)(ABMultiValueCopyValueAtIndex(phoneNumbers, 0));
NSLog(@"%@",phone);
ABMutableMultiValueRef firstNameMulti = ABRecordCopyValue(person, kABPersonFirstNameProperty);
ABMutableMultiValueRef middleNameMulti = ABRecordCopyValue(person, kABPersonMiddleNameProperty);
ABMutableMultiValueRef lastNameMulti = ABRecordCopyValue(person, kABPersonLastNameProperty);
NSString *firsNameString =(__bridge_transfer NSString*)firstNameMulti;
NSString *middleNameString = (__bridge_transfer NSString*)middleNameMulti;
NSString *lastNameString = (__bridge_transfer NSString*)lastNameMulti;
if (firsNameString.length==0) {
firsNameString=@"";
}
if (middleNameString.length==0) {
middleNameString=@"";
}
if (lastNameString.length==0) {
lastNameString=@"";
}
if (phone.length==0) {
phone=@"";
}
NSString *nameString = [NSString stringWithFormat:@"%@%@%@",lastNameString,middleNameString,firsNameString];
NSLog(@"%@",nameString);
NSDictionary * dic=@{@"name":nameString,@"phone":phone};
[_addressBookArray addObject:dic];
[GFDataSaver saveString:@"book" forKey:@"book"];
NSLog(@"%@",_addressBookArray);
}