ios通过app读取通讯录信息
来源:互联网 发布:p2p网络搭建 编辑:程序博客网 时间:2024/05/24 06:57
iOS通过app读取通讯录信息,读取通讯录信息时需要加载AddressBookUI 和AddressBook两个包,并且引入头文件
#import <AddressBook/AddressBook.h>
#import <AddressBookUI/AddressBookUI.h>
具体实现如下:
#import <AddressBook/AddressBook.h>
#import <AddressBookUI/AddressBookUI.h>
具体实现如下:
-(void)readAllPeoples{ //定义通讯录名字为addressbook ABAddressBookRef tmpAddressBook = nil; //根据系统版本不同,调用不同方法获取通讯录 if ([[UIDevice currentDevice].systemVersion floatValue]>=6.0) { tmpAddressBook=ABAddressBookCreateWithOptions(NULL, NULL); dispatch_semaphore_t sema=dispatch_semaphore_create(0); ABAddressBookRequestAccessWithCompletion(tmpAddressBook, ^(bool greanted, CFErrorRef error){ dispatch_semaphore_signal(sema); }); dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER); dispatch_release(sema); } else { tmpAddressBook =ABAddressBookCreate(); } //取得通讯录失败 if (tmpAddressBook==nil) { return ; }; //将通讯录中的信息用数组方式读出 NSArray* tmpPeoples = (NSArray*)ABAddressBookCopyArrayOfAllPeople(tmpAddressBook);
//遍历通讯录中的联系人 for(id tmpPerson in tmpPeoples){ //获取的联系人单一属性:First name NSString* tmpFirstName = (NSString*)ABRecordCopyValue(tmpPerson, kABPersonFirstNameProperty); NSLog(@"First name:%@", tmpFirstName); [tmpFirstName release]; //获取的联系人单一属性:Last name NSString* tmpLastName = (NSString*)ABRecordCopyValue(tmpPerson, kABPersonLastNameProperty); NSLog(@"Last name:%@", tmpLastName); [tmpLastName release]; //获取的联系人单一属性:Nickname NSString* tmpNickname = (NSString*)ABRecordCopyValue(tmpPerson, kABPersonNicknameProperty); NSLog(@"Nickname:%@", tmpNickname); [tmpNickname release]; //获取的联系人单一属性:Company name NSString* tmpCompanyname = (NSString*)ABRecordCopyValue(tmpPerson, kABPersonOrganizationProperty); NSLog(@"Company name:%@", tmpCompanyname); [tmpCompanyname release]; //获取的联系人单一属性:Job Title NSString* tmpJobTitle= (NSString*)ABRecordCopyValue(tmpPerson, kABPersonJobTitleProperty); NSLog(@"Job Title:%@", tmpJobTitle); [tmpJobTitle release]; //获取的联系人单一属性:Department name NSString* tmpDepartmentName = (NSString*)ABRecordCopyValue(tmpPerson, kABPersonDepartmentProperty); NSLog(@"Department name:%@", tmpDepartmentName); [tmpDepartmentName release]; //获取的联系人单一属性:Email(s) ABMultiValueRef tmpEmails = ABRecordCopyValue(tmpPerson, kABPersonEmailProperty); for(NSInteger j = 0; ABMultiValueGetCount(tmpEmails); j++) { NSString* tmpEmailIndex = (NSString*)ABMultiValueCopyValueAtIndex(tmpEmails, j); NSLog(@"Emails%d:%@", j, tmpEmailIndex); [tmpEmailIndex release]; }
<pre code_snippet_id="356574" snippet_file_name="blog_20140521_1_7796663" name="code" class="objc" style="border: 1px solid rgb(255, 255, 204); background-color: rgb(255, 255, 252); font-family: 'Courier New'; overflow: auto; font-size: 16px; line-height: 24px;"> CFRelease(tmpEmails); //获取的联系人单一属性:Birthday NSDate* tmpBirthday = (NSDate*)ABRecordCopyValue(tmpPerson, kABPersonBirthdayProperty); NSLog(@"Birthday:%@", tmpBirthday); [tmpBirthday release]; //获取的联系人单一属性:Note NSString* tmpNote = (NSString*)ABRecordCopyValue(tmpPerson, kABPersonNoteProperty); NSLog(@"Note:%@", tmpNote); [tmpNote release]; //获取的联系人单一属性:Generic phone number ABMultiValueRef tmpPhones = ABRecordCopyValue(tmpPerson, kABPersonPhoneProperty); for(NSInteger j = 0; j < ABMultiValueGetCount(tmpPhones); j++) { NSString* tmpPhoneIndex = (NSString*)ABMultiValueCopyValueAtIndex(tmpPhones, j); NSLog(@"tmpPhoneIndex%d:%@", j, tmpPhoneIndex); [tmpPhoneIndex release]; } CFRelease(tmpPhones); } //释放内存 [tmpPeoples release]; CFRelease(tmpAddressBook);}
0 0
- iOS通过app读取通讯录信息
- ios通过app读取通讯录信息
- iOS通过app读取通讯录信息(整理)
- ios读取通讯录信息
- ios读取通讯录信息
- ios读取通讯录信息
- iOS访问通讯录开发-读取联系人信息
- iOS访问通讯录开发-读取联系人信息
- 读取手机通讯录信息
- Swift - 读取通讯录信息
- Android读取通讯录信息
- iOS读取通讯录功能
- iOS读取通讯录
- iOS 读取通讯录
- IOS 获取通讯录信息
- iOS 通讯录--写入信息
- iOS 调用通讯录信息
- iOS获取通讯录信息
- 网狐棋牌(八) 异步引擎 和 网狐棋牌(九) 服务引擎概览
- 栈-----顺序储存结
- 再说内存池
- 网狐棋牌(十) 成也萧何败也肖何? IUnknowEx
- HashTable、HashSet和Dictionary的区别
- ios通过app读取通讯录信息
- 测试博客
- JDK1.7(jdk7.0)新特性
- 利用openresty-lua生态修改upstream后端服务
- 【转】MongoDB的java版本驱动
- 菜鸟学习Spring——SpringMVC注解版前台向后台传值的两种方式GOOD
- JPA 学习篇(一)JPA简介
- word2vec使用指导
- 网狐的加密模块,映射加密算法分析