读取iPhone中的通讯录信息

添加AddressBook这个包;然后#import <AddressBook/AddressBook.h>
//取得本地通信录名柄
    ABAddressBookRef addressBook;

    if ([[UIDevice currentDevice].systemVersion floatValue] >= 6.0){
        addressBook = ABAddressBookCreateWithOptions(NULL, NULL);
        //等待同意后 向下执行
        dispatch_semaphore_t sema = dispatch_semaphore_create(0);            ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error)                                            {
            dispatch_semaphore_signal(sema);
        });
        dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);

    }else{
        addressBook = ABAddressBookCreate();
    }

    //取得本地所有联系人信息
    CFArrayRef results = ABAddressBookCopyArrayOfAllPeople(addressBook);
    for(int i = 0; i < CFArrayGetCount(results); i++){
        ABRecordRef person = CFArrayGetValueAtIndex(results, i);

        //读取firstname
        NSString *firstName = (__bridge NSString*)ABRecordCopyValue(person, kABPersonFirstNameProperty);
        //读取lastname
        NSString *lastName = (__bridge NSString*)ABRecordCopyValue(person, kABPersonLastNameProperty);
        //读取电话号码
        NSString *phoneNum;
        ABMultiValueRef phone = ABRecordCopyValue(person, kABPersonPhoneProperty);
        for (int k = 0; k < ABMultiValueGetCount(phone); k++){
            phoneNum = (__bridge NSString*)ABMultiValueCopyValueAtIndex(phone, k);
        }
        NSLog(@"firstName:%@ - lastName:%@ - phoneNum:%@",firstName,lastName,phoneNum);
    }
时间: 2024-10-09 22:18:38

读取iPhone中的通讯录信息的相关文章

【转】Revit二次开发——读取cad中的文字信息

Revit读取cad的文字信息需要借助Teigha的开源dll,在程序中添加下图中红色框的dll文件的引用,其他的dll文件全部放在同一个文件夹中即可,运行的时候,会自动把这些dll文件全部复制到bin文件当中,同时,在Revit中运行插件,Revit也会自动加载这些dll文件. 以下是关键方法,在Revit里读取cad文字信息,图层信息,几何信息等. using System; using System.Collections.Generic; using System.Linq; using

读取配置文件中数据库设置信息来创建connection对象

package com.atguigu.jdbc; import java.io.IOException;import java.io.InputStream;import java.sql.Connection;import java.sql.Driver;import java.sql.SQLException;import java.util.Properties; import org.junit.Test; public class JDBCTest { /** * 编写一个通用的方法

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

iOS通过app读取通讯录信息,读取通讯录信息时需要加载AddressBookUI 和AddressBook两个包,并且引入头文件 #import <AddressBook/AddressBook.h> #import <AddressBookUI/AddressBookUI.h> 具体实现如下: -(void)readAllPeoples { //定义通讯录名字为addressbook ABAddressBookRef tmpAddressBook = nil; //根据系统版本

iOS开发读取plist文件、iphone中plist文件的

在Xcode中建立一个iOS项目后,会自己产生一个.plist文件,点击时会看见它显示的是类似于excel表格: 但是,如果打开方式选择Source Code,你会看见它其实是一个xml文件. 我们会做一个小例子,在这个例子中我们自己建立一个plist文件并填入数据,然后运行时读取这个plist文件,并将数据填写在界面上. 首先要知道读取plist文件的方法,一般来说,使用代码 NSString *plistPath = [[NSBundle mainBundle] pathForResourc

JAVA 读取计算机中相关信息

java读取 计算机 cup号 读取版本 显卡 ................. package com.swt.common.util; import java.io.BufferedReader; import java.io.File; import java.io.FileWriter; import java.io.InputStreamReader; import java.io.LineNumberReader; /** * 获取硬件信息 * @author luoxf * */

android读取apk中已经存在的数据库信息

在android数据库编程方面,大家有没有遇到过,我要从指定位置的已经存在的数据库来进行操作的问题.之前我尝试了很多方法都没有成功,后来找到了解决的方法.   下面说明下这段代码的意思,第一步先判断在指定的路劲是否存在,不存在就创建设计素材大全.第二步将android的资源下的数据库复制到指定路径下面.第三步就是根据指定路径打开或者创建数据库,然后得到操作数据库的对象,得到操作数据库的对象了,自然就可以对数据库中的表进行增删改查等操作了. 1. [代码]android程序读取项目中已经存在的数据

QT初体验1:如何学习QT之个人浅见,以及如何读取文本文件,在调试信息中输出。

2017年11月初,随着工作岗位的调动,我转到了研发岗,开始了漫漫程序员的成长之路.首先介绍下个人知识储备,大一学习过C语言,没有工程经验,所学是为了期末考试+2级考试,考完在大学+硕士期间没有用到编程. 来到新的工作岗位,心情是既激动又忐忑的,作为一名青铜段位程序员,我得好好规划下学习.成长的路径. 我选择的方法是,跟着项目走,工作中不可能给你大把时光来造作,去把厚厚的C++ Primer or C++ Primer Plus给通读一遍.带着任务去学习,学的最快.具体而言,我的学习思路是: 1

node.js 模块和读取路由中获取信息

模块很类似于Java中的类,也是可以继承的,有自己的变量和方法 nj_dome.js var http = require('http'); var User = require("./model/User");//导入user的模块 var Teacher = require("./model/Teacher");//导入teacher的模块 http.createServer(function (request, response) { response.wri

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 --