zoukankan      html  css  js  c++  java
  • 获取ios通讯录信息

    包含相应地库之后直接调用

    #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);

        }

        else

        {

            tmpAddressBook = ABAddressBookCreateWithOptions(NULL, NULL);

        }

        //取得通讯录失败

        if (tmpAddressBook==nil) {

            return ;

        };

        

        //将通讯录中的信息用数组方式读出

        NSArray* tmpPeoples = (__bridge NSArray*)ABAddressBookCopyArrayOfAllPeople(tmpAddressBook);

        

        //遍历通讯录中的联系人

        for(id tmpPerson in tmpPeoples){

            

            //获取的联系人单一属性:First name

            NSString* tmpFirstName = (__bridge NSString*)ABRecordCopyValue((__bridge ABRecordRef)(tmpPerson), kABPersonFirstNameProperty);

            NSLog(@"First name:%@", tmpFirstName);

            

            //获取的联系人单一属性:Last name

            NSString* tmpLastName = (__bridge NSString*)ABRecordCopyValue((__bridge ABRecordRef)(tmpPerson),kABPersonLastNameProperty);

            NSLog(@"Last name:%@", tmpLastName);

            

            //获取的联系人单一属性:Nickname

            NSString* tmpNickname = (__bridge NSString*)ABRecordCopyValue((__bridge ABRecordRef)(tmpPerson), kABPersonNicknameProperty);

            NSLog(@"Nickname:%@", tmpNickname);

            

            //获取的联系人单一属性:Company name

            NSString* tmpCompanyname = (__bridge NSString*)ABRecordCopyValue((__bridge ABRecordRef)(tmpPerson), kABPersonOrganizationProperty);

            NSLog(@"Company name:%@", tmpCompanyname);

            

            //获取的联系人单一属性:Job Title

            NSString* tmpJobTitle= (__bridge NSString*)ABRecordCopyValue((__bridge ABRecordRef)(tmpPerson),kABPersonJobTitleProperty);

            NSLog(@"Job Title:%@", tmpJobTitle);

            

            //获取的联系人单一属性:Department name

            NSString* tmpDepartmentName = (__bridge NSString*)ABRecordCopyValue((__bridge ABRecordRef)(tmpPerson), kABPersonDepartmentProperty);

            NSLog(@"Department name:%@", tmpDepartmentName);

            

            //获取的联系人单一属性:Email(s)

            ABMultiValueRef tmpEmails = ABRecordCopyValue((__bridge ABRecordRef)(tmpPerson),kABPersonEmailProperty);

            for(NSInteger j = 0; ABMultiValueGetCount(tmpEmails); j++)

            {

                NSString* tmpEmailIndex = (__bridge NSString*)ABMultiValueCopyValueAtIndex(tmpEmails, j);

                NSLog(@"Emails%ld:%@", (long)j, tmpEmailIndex);

            }

            CFRelease(tmpEmails);

            

            //获取的联系人单一属性:Birthday

            NSDate* tmpBirthday = (__bridge NSDate*)ABRecordCopyValue((__bridge ABRecordRef)(tmpPerson),kABPersonBirthdayProperty);

            NSLog(@"Birthday:%@", tmpBirthday);

            

            //获取的联系人单一属性:Note

            NSString* tmpNote = (__bridge NSString*)ABRecordCopyValue((__bridge ABRecordRef)(tmpPerson),kABPersonNoteProperty);

            NSLog(@"Note:%@", tmpNote);

            

            //获取的联系人单一属性:Generic phone number

            ABMultiValueRef tmpPhones = ABRecordCopyValue((__bridge ABRecordRef)(tmpPerson),kABPersonPhoneProperty);

            for(NSInteger j = 0; j < ABMultiValueGetCount(tmpPhones); j++)

            {

                NSString* tmpPhoneIndex = (__bridge NSString*)ABMultiValueCopyValueAtIndex(tmpPhones, j);

                NSLog(@"tmpPhoneIndex%ld:%@", (long)j, tmpPhoneIndex);

            }

        }

     

    }

     

    原文路径:http://www.devdiv.com/ios_-blog-215400-52842.html

     

  • 相关阅读:
    mui 上拉加载 实现分页加载功能
    CSS 实现自适应正方形
    CSS 实现垂直居中
    CSS 实现左侧固定,右侧自适应两栏布局的方法
    微信小程序 主题皮肤切换(switch开关)
    微信小程序 tabBar模板
    微信小程序 拼团商品倒计时(拼团列表、拼团商品详情)
    js时间操作getTime(),ios移动端真机上返回显示NAN
    微信小程序 使用wxParse解析html
    原生JavaScript轮播图的节流
  • 原文地址:https://www.cnblogs.com/h-tao/p/4861413.html
Copyright © 2011-2022 走看看