获取手机通讯录

原创 2016年06月01日 19:22:16

获取手机联系人和通讯录是比较常见的功能,由于iOS8之后获取的方法有所变化,使得获取时方法的兼容性变的并不那么友好,本文对获取单个联系人和完整通讯录的方法进行了简单的封装,用于选择单个联系人和获取通讯录。

注:本文中的方法只针对iOS7.0之后进行兼容,同时需要注意的是除非有特殊需求,否则不要轻易隐性获取用户的通讯录,更不能泄漏用户的个人信息。

1)为了保持实现功能的独立性,避免不必要的外部依赖,我们为UIWindow创建一个Category来现实获取应用中当前正在显示的控制器,然后用该控制器来present出来ABPeoplePickerNavigationController对象。主要实现如下,通过简单递归来查找当前正在显示的控制器。


2)在工程中引入AddressBook.framework和AddressBookUI.framework两个系统框架和相关头文件,创建继承于NSObject的AddressBookManager的通讯录管理类。

定义以下枚举类型,用以表示返回的状态;


定义返回回调函数


其中code代表返回的状态,response代表操作的返回数据结果。

定义两个类方法,分别用于选个单个联系人和整个通讯录


3)获取单个联系人的方法实现


在iOS7中需要实现的代理方法


在iOS8_OR_LATER中需要实现以下代理方法:


获取完整通讯录的方法实现


想要获取详细的实现细节,可以点击下载。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

获取手机联系人以及向通讯录插入数据.

//获取手机联系人的操作是非常常见的操作.

iOS获取手机通讯录(两种框架详解)

http://blog.csdn.net/hj7jay/article/details/51798911 今天浏览简书,看了好多获取通讯录的,都是使用AddressBook.framewor...

安卓手机各种信息获取---(通讯录短信息通话记录)

由于最近公司在做手机信息采集项目,做得很吃力,效果也不理想。 加上今天负能量较多,谢谢一些近日搜索回来的安卓手机经验。 1.目标 在PC端程序获取手机中的各种信息,主要通讯录、短信息、通话记录等...

【Android】获取手机通讯录中的联系人信息

1.手机中的联系人信息是经常用到的一个功能,下面这段代码

ContentProvider与隐式Intent获取手机联系人通讯录信息或电话的方法

ContentProvider与隐式Intent获取手机联系人通讯录信息或电话的方法

获取手机通讯录

在公司里写了一段上传用户通讯录的代码。写下来,以便以后查阅; 获取手机里的通讯录: /** * 获取通讯录 * @param context * @return 返回包含用户名,与...
  • kazeik
  • kazeik
  • 2012年10月11日 16:18
  • 1055

获取手机通讯录以及添加联系人

获取手机通讯录

获取android手机通讯录中的信息

uri中的业务路径需要查看android的源代码 private static final String TAG="ContactsTest"; public void testContact...
  • etmessi
  • etmessi
  • 2013年09月04日 10:38
  • 967

iOS 获取手机通讯录联系电话

兼容iOS8.0版本,只获得手机电话,其他的通讯录信息也有注释,直接上代码了 使用方法 //通讯录-(void)addressBookData { [[AddressBookManager...

Android获取手机通讯录调用系统短信功能

写应用经常会遇到获取通讯联系人列表,发送短信, 附上demo下载地址:http://download.csdn.net/detail/hap_gx/5308860 首先介绍一下发送短信的两种方...
  • hap_gx
  • hap_gx
  • 2013年04月27日 18:13
  • 2484
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:获取手机通讯录
举报原因:
原因补充:

(最多只允许输入30个字)