• IOS 获取系统通讯录中的联系人信息


    - (IBAction)getAllContactFromSystem {
    ABAddressBookRef ab = ABAddressBookCreateWithOptions(NULL, NULL);
    ABAddressBookRequestAccessWithCompletion(ab, ^(bool granted, CFErrorRef error) {

    //取得通讯录访问授权
    ABAuthorizationStatus authorization= ABAddressBookGetAuthorizationStatus();
    if (authorization!=kABAuthorizationStatusAuthorized) {
    NSLog(@"尚未获得通讯录访问授权!");
    return ;
    }

    //取得通讯录中所有人员记录
    CFArrayRef allPeople= ABAddressBookCopyArrayOfAllPeople(ab);
    for (int i=0; i<CFArrayGetCount(allPeople); ++i) {
    ABRecordRef recordRef = CFArrayGetValueAtIndex(allPeople, i);
    //获取用户名
    NSString *firstName = (__bridge NSString *) ABRecordCopyValue(recordRef, kABPersonFirstNameProperty);
    NSString *lastName = (__bridge NSString *)ABRecordCopyValue(recordRef, kABPersonLastNameProperty);
    NSString *personName = [NSString stringWithFormat:@"%@%@",lastName,firstName];
    //获取手机号
    NSMutableArray *phoneNumbers = [NSMutableArray new];
    ABMultiValueRef phoneNumbersRef = ABRecordCopyValue(recordRef, kABPersonPhoneProperty);
    for(int j=0; j<ABMultiValueGetCount(phoneNumbersRef); ++j){
    NSString* phoneNumber = (__bridge NSString *)(ABMultiValueCopyValueAtIndex(phoneNumbersRef, j));
    phoneNumber = [phoneNumber stringByReplacingOccurrencesOfString:@"-" withString:@""];
    if (phoneNumber.length > 0) {
    [phoneNumbers addObject:phoneNumber];
    }
    }
    }

    //释放资源
    CFRelease(allPeople);
    });
    }

  • 相关阅读:
    在Windows Server 2008 R2上安装IIS服务
    Linux 系统化学习系列文章总目录(持续更新中)
    Oracle 11g一步步安装详解
    MySQL 菜鸟入门“秘籍”
    Linux下的/proc目录介绍
    Python查找文件
    Python对文件和文件路径的管理
    Python中执行外部命令
    Python处理命令行参数
    CentOS7--TigerVNC
  • 原文地址:https://www.cnblogs.com/guoxiaoqian/p/5314734.html
Copyright © 2020-2023  润新知