`
jsntghf
  • 浏览: 2533878 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

通过代码创建联系人

    博客分类:
  • iOS
阅读更多

首先,需要导入AddressBook.framework框架,然后在头文件中加入:#import <AddressBook/AddressBook.h>

 

CFErrorRef error = NULL; 		
ABAddressBookRef addressBook = ABAddressBookCreate();		
ABRecordRef newPerson= ABPersonCreate(); 

ABRecordSetValue(newPerson, kABPersonFirstNameProperty, @"Eric", &error); 		
ABRecordSetValue(newPerson, kABPersonLastNameProperty, @"Gao", &error); 			
ABRecordSetValue(newPerson, kABPersonJobTitleProperty, @"市场部经理", &error);
ABRecordSetValue(newPerson, kABPersonOrganizationProperty, @"移动技术研发", &error);

ABMutableMultiValueRef multiPhone = ABMultiValueCreateMutable(kABMultiStringPropertyType);			
ABMultiValueAddValueAndLabel(multiPhone, @"12345678", kABPersonPhoneMainLabel, NULL);           			
ABRecordSetValue(newPerson, kABPersonPhoneProperty, multiPhone, &error);			
CFRelease(multiPhone);

ABMutableMultiValueRef multiEmail = ABMultiValueCreateMutable(kABMultiStringPropertyType);
ABMultiValueAddValueAndLabel(multiEmail, @"别墅", kABHomeLabel, NULL);
ABRecordSetValue(newPerson, kABPersonEmailProperty, multiEmail, &error);
CFRelease(multiEmail);

ABMutableMultiValueRef urlMultiValue = ABMultiValueCreateMutable(kABMultiStringPropertyType);
ABMultiValueAddValueAndLabel(urlMultiValue,@"www.google.cn", kABPersonHomePageLabel, NULL);
ABRecordSetValue(newPerson, kABPersonURLProperty, urlMultiValue, &error);
CFRelease(urlMultiValue);

ABMutableMultiValueRef multiAddress = ABMultiValueCreateMutable(kABMultiDictionaryPropertyType);
NSMutableDictionary *addressDictionary = [[NSMutableDictionary alloc] init];
[addressDictionary setObject:@"北京市海淀区中关村" forKey:(NSString *) kABPersonAddressStreetKey];
ABMultiValueAddValueAndLabel(multiAddress, addressDictionary, kABWorkLabel, NULL);
ABRecordSetValue(newPerson, kABPersonAddressProperty, multiAddress, &error);
CFRelease(multiAddress);

UIImage *image = [UIImage imageNamed:@"head.png"];

if (image) {
	NSData *dataRef = UIImagePNGRepresentation(image); 
	CFDataRef dr = CFDataCreate(NULL, [dataRef bytes], [dataRef length]);
	ABPersonSetImageData(newPerson, dr, &error);
	CFRelease(dr);   			
}	

ABAddressBookAddRecord(addressBook, newPerson, &error); 
CFRelease(newPerson);

ABAddressBookSave(addressBook, &error);

 

效果图:


分享到:
评论

相关推荐

    纯代码创建UITableView

    在iOS开发中,UITableView是一种非常重要的视图组件,它用于展示列表数据,通常用于实现诸如联系人列表、新闻摘要等功能。本教程将详细介绍如何通过纯代码方式创建一个简单的UITableView,这对于初学者来说是一次很...

    android4.0 联系人源代码

    Android 4.0中的源代码展示了如何通过定义URI权限来控制不同应用对联系人数据的访问权限。 4. **CursorLoader与LoaderManager**:在Android 4.0中,引入了Loader API来异步加载数据,CursorLoader是专门用于加载...

    通过代码获取邮箱联系人(126、163)

    本项目专注于通过代码方式获取126和163邮箱的联系人列表,这通常涉及到邮件服务API的调用和身份验证。下面将详细阐述实现这一功能的关键知识点。 1. **邮箱API接口**: - 126和163邮箱由网易公司提供,它们提供了...

    android 联系人 SIM卡 最近联系人 通讯录 获取源代码

    `ContactsQuery`很可能是一个包含上述功能的源码文件,可能包括了获取联系人、SIM卡联系人和最近联系人的代码。这个文件可能包含以下部分: - `queryContacts()`函数:用于获取所有联系人。 - `querySimContacts()`...

    android(安卓)联系人管理源代码

    通过对这份源代码的分析和学习,开发者不仅可以掌握Android联系人管理的基础知识,还能提升在实际项目中处理用户数据的能力。同时,这也为开发其他类型的Content Provider,如日历、笔记等,提供了参考和启示。

    Android代码-Android手机的通讯录联系人信息.zip

    在Android系统中,通讯录是用户管理联系人信息的核心组件,它允许用户存储、查看和管理他们的联系人数据。...通过解析和理解这些代码,可以加深对Android系统中联系人管理的理解,有助于开发涉及通讯录功能的应用。

    android 联系人广播协议 代码

    本文将深入探讨Android联系人广播协议的相关知识点,并通过代码示例来帮助开发者理解其工作原理。 一、Android联系人广播事件 当用户在系统中添加、删除或修改联系人时,Android会发送一个Intent广播,这个广播携带...

    获得联系人代码

    在学习"黑马28期得到联系人代码"的过程中,通过实践这些知识点,初学者不仅可以掌握基本的编程技能,还能逐步理解软件开发的整体流程。通过实际操作,理论知识将更加巩固,同时也能培养解决问题的能力。

    Android读取联系人代码示例

    本文将详细讲解如何通过Android API来读取设备上的联系人信息,并提供一个具体的代码示例。 首先,为了访问Android系统的联系人数据,我们需要在AndroidManifest.xml文件中添加相应的权限声明: ```xml ``` 这是...

    Android 联系人列表

    本篇文章将深入探讨如何实现一个“Android电话联系人页面布局”以及相关的代码实现。 首先,我们需要理解Android的联系人数据是如何存储的。在Android系统中,联系人信息存储在Content Provider中,主要通过`...

    安卓通讯录联系人打电话归属地相关-android通讯录功能实现了如下功能1.检索手机存入联系人并显示2.右侧导航条根据拼音字母检索联系人3.通过搜索栏实时搜索联系人4.vCard格式导出并发送分享功能5.检测系统通讯录是否有变化有变化在通知栏通知并更新联系人列表功能.rar

    通过搜索栏实时搜索联系人 4.vCard格式导出并发送分享功能 5.检测系统通讯录是否有变化,有变化在通知栏通知,并更新联系人列表功能.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考...

    联系人源码

    1. **ContentProvider类**:实现了Android的ContentProvider接口,提供了一套标准的CRUD(创建、读取、更新、删除)操作,使得其他应用程序可以通过URI访问和操作联系人数据。 2. **SQLite数据库**:联系人的数据...

    jQuery联系人生成二维码代码.zip

    **jQuery联系人生成二维码代码详解** 在Web开发中,实现用户友好的交互功能常常能提升网站的用户体验。本文将深入探讨如何使用jQuery库来生成一个联系人二维码,使得用户可以通过扫描二维码快速添加到他们的微信...

    Android联系人自动过滤并显示“新建联系人”

    总的来说,“ContactTest”项目应该是对这个过程的一个实践,通过阅读和分析项目代码,你可以更深入地理解Android联系人管理和自动过滤显示的实现原理。同时,了解和掌握这些知识对于开发高效、用户友好的Android...

    Android 获取系统联系人并发送短信demo

    这个“Android 获取系统联系人并发送短信demo”应该是提供了一个示例代码,帮助开发者理解如何实现这两个功能。下面我们将详细探讨这两个知识点。 **获取系统联系人** 在Android中,获取系统联系人的过程涉及读取...

    android获取联系人名单

    获取联系人数据主要通过ContactsContract类,这是一个包含所有与联系人相关的常量和URI的类。 以下是获取联系人列表的基本步骤: 1. 创建一个ContentResolver对象,它是与Content Provider进行交互的接口。通常在...

    安卓联系人应用源码

    通过深入研究【安卓联系人应用源码】,开发者不仅能学习到Android开发的基础知识,还能掌握高级特性,如数据存储、用户界面设计和组件间的协作,这对提升个人技能和开发高效、稳定的Android应用大有裨益。...

    添加手机联系人信息到特别关心列表或者常用联系人

    这段代码通过查询ContactsContract的PHONE数据URI,获取了所有联系人的显示名称和电话号码。你可以根据需要添加更多的字段,如电子邮件、地址等。 接下来,我们需要创建一个“特别关心”或“常用联系人”的列表。这...

    Android@联系人功能

    3. **显示联系人选择界面**:创建一个Dialog或者BottomSheet,展示联系人列表。列表项应包含联系人头像、姓名等信息,并实现点击事件监听,以便用户选择联系人。 4. **处理选择结果**:用户选定联系人后,将联系人...

    swift-ZHContactManager-通讯录操作选择联系人添加新联系人添加到现有联系人;

    通过这个库,开发者可以创建一个UI,允许用户从他们的通讯录中选择一个或多个联系人。这一功能通常用于需要用户授权访问其通讯录的应用场景,比如推荐好友、邀请联系人等。 其次,`ZHContactManager`支持创建新的...

Global site tag (gtag.js) - Google Analytics