iOS獲取通訊錄 電話號碼與姓名


// 還是導入

#import <AddressBook/AddressBook.h>

 


- (void)fetchAddressBookBeforeIOS9{ ABAddressBookRef addressBook = ABAddressBookCreate(); //用戶授權 if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined) {//首次訪問通訊錄 ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error) { if (!error) { if (granted) {//允許 NSArray *contacts = [self fetchContactWithAddressBook:addressBook]; dispatch_async(dispatch_get_main_queue(), ^{ NSLog(@"contacts:%@", contacts); }); }else{//拒絕 } }else{ NSLog(@"錯誤!"); } }); }else{//非首次訪問通訊錄 NSArray *contacts = [self fetchContactWithAddressBook:addressBook]; dispatch_async(dispatch_get_main_queue(), ^{ NSLog(@"contacts:%@", contacts); }); } } - (NSMutableArray *)fetchContactWithAddressBook:(ABAddressBookRef)addressBook{ if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusAuthorized) {////有權限訪問 //獲取聯系人數組 NSArray *array = (__bridge NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook); NSMutableArray *contacts = [NSMutableArray array]; for (int i = 0; i < array.count; i++) { //獲取聯系人 ABRecordRef people = CFArrayGetValueAtIndex((__bridge ABRecordRef)array, i); //獲取聯系人詳細信息,如:姓名,電話,住址等信息 NSString *firstName = (__bridge NSString *)ABRecordCopyValue(people, kABPersonFirstNameProperty); NSString *lastName = (__bridge NSString *)ABRecordCopyValue(people, kABPersonLastNameProperty); ABMutableMultiValueRef *phoneNumRef = ABRecordCopyValue(people, kABPersonPhoneProperty); NSString *phoneNumber = ((__bridge NSArray *)ABMultiValueCopyArrayOfAllValues(phoneNumRef)).lastObject; [contacts addObject:@{@"name": [firstName stringByAppendingString:lastName], @"phoneNumber": phoneNumber}]; } return contacts; }else{//無權限訪問 NSLog(@"無權限訪問通訊錄"); return nil; } }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM