iOS通过app读取通讯录信息(整理)

iOS通过app读取通讯录信息,读取通讯录信息时需要加载AddressBookUI 和AddressBook两个包,并且引入头文件

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

iOS通过app读取通讯录信息(整理),布布扣,bubuko.com

时间: 2024-12-25 18:19:41

iOS通过app读取通讯录信息(整理)的相关文章

android 读取通讯录显示到gridview

........... <GridView android:id="@+id/gridView1" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignLeft="@+id/button2" android:layout_below="@+id/button2" and

iOS.访问通讯录.01.读取联系人信息

1.相关函数介绍 1.创建通讯录对象函数 ABAddressBookRef ABAddressBookCreateWithOptions( CFDictionaryRef options, CFErrorRef *error ); 例子: CFErrorRef error = NULL; ABAdressBookRef addressBook = ABAdressBookCreateWithOptions(NULL,&error); ABAddressBookRequestAccessWithC

React Native之获取通讯录信息并实现类通讯录列表(ios android)

React Native之获取通讯录信息并实现类通讯录列表(ios android) 一,需求分析 1,获取通讯录信息,筛选出通讯录里有多少好友在使用某个应用. 2,获取通讯录信息,实现类通讯录,可拨打电话 发短信等. 二,技术介绍与配置 2.1 技术介绍 1,react-native-contacts地址:https://www.npmjs.com/package/react-native-contacts 2,下载安装:npm install react-native-contacts --

iOS8通讯录信息读取兼容

项目中有一个功能需要读取通讯录中联系人的手机.在iOS8以前都是可用的,主要使用如下三个代理方法来实现 - (void) peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker - (BOOL) peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker sho

从AppStore获取一个iOS App的版本信息

做了一个iOS下的App,普通情况下,AppStore会提示更新的,但是用户如果没开推送,或者不打开AppStore,是不知道有新版本的,所以要做版本更新提醒,当AppStore上有新的版本时,提示用户进行更新.如何关键是如何获得AppStore上的版本信息,可以通过苹果提供的REST接口进行查询. NSString *urlStr = [[NSString alloc] initWithFormat:@"http://itunes.apple.com/lookup?id=%@",@&

命令行苹果 IOS MAC IPAD 所有app 的相关信息

最近因为工作需要,需要查找所有苹果IOS 上面应用的相关信息,包括APP 的名称和Identifier,如果一个应用一个应用的安装到手机上面再接通到电脑上面查找就太过费公费了,而且相当费时间和占用公司的网速了.于是自己写了一个查找这些信息的脚本程序. 安装方式是  gem install fetchapp 使用格式如下 fetchapp -t  [iphone ipad mac]  -a 没有写文档,因为没有写太多的功能,这里是一个例子 fetchapp -t iphone start requ

ios 读取通讯录数据

#import <Foundation/Foundation.h> @interface LoadingContactData : NSObject // 读取通讯录 + (LoadingContactData *)shareIntance; - (void)getContactData; @end #import "LoadingContactData.h" static LoadingContactData *_contactData; @implementation

iOS开发——高级技术&amp;通讯录功能的实现

通讯录功能的实现 iOS 提供了对通讯录操作的组建,其中一个是直接操作通讯录,另一个是调用通讯录的 UI 组建.实现方法如下: 添加AddressBook.framework到工程中. 代码实现: 1 -(IBAction)onClickbutton:(id)sender 2 { 3 NSMutableArray* personArray = [[[NSMutableArray alloc] init] autorelease]; 4 ABAddressBookRef addressBook =

iOS 9 App Search教程

原文链接 : iOS 9 App Search Tutorial: Introduction to App Search 原文作者 : Chris Wagner 译文出自 : 开发技术前线 www.devtf.cn 译者 : kmyhy Ray 注:本文作为<iOS 9 Feast>中的一部分,节略自 <iOS 9 Tutorials>其中一章--通过本文,您可对全书内容窥见一斑.祝您阅读愉快! 在相当长的一段时间内,iOS 的 Spotlight 都是一个大坑.尽管用户可以用它来