获取权限
ABAddressBookRef addressBookRef = ABAddressBookCreateWithOptions(NULL, NULL);
if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined) {
ABAddressBookRequestAccessWithCompletion(addressBookRef, ^(bool granted, CFErrorRef error){
CFErrorRef *error1 = NULL;
ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, error1);
[self copyAddressBook:addressBook];
});
}
else if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusAuthorized){
CFErrorRef *error = NULL;
ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, error);
[self copyAddressBook:addressBook];
}
else {
dispatch_async(dispatch_get_main_queue(), ^{
// 更新界面
NSLog(@"没有获取通讯录权限");
});
}
获取用户名和号码
- (void)copyAddressBook:(ABAddressBookRef)addressBook{
CFIndex numberOfPeople = ABAddressBookGetPersonCount(addressBook);
CFArrayRef people = ABAddressBookCopyArrayOfAllPeople(addressBook);
for ( int i = 0; i < numberOfPeople; i++){
ABRecordRef person = CFArrayGetValueAtIndex(people, i);
NSString *name = (NSString*)CFBridgingRelease(ABRecordCopyCompositeName(person));
ABMultiValueRef valuesRef = ABRecordCopyValue(person, kABPersonPhoneProperty);
CFStringRef telValue = ABMultiValueCopyValueAtIndex(valuesRef,0);
}
}
个人博客iseedog