首先,需要导入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);
效果图:
分享到:
相关推荐
在iOS开发中,UITableView是一种非常重要的视图组件,它用于展示列表数据,通常用于实现诸如联系人列表、新闻摘要等功能。本教程将详细介绍如何通过纯代码方式创建一个简单的UITableView,这对于初学者来说是一次很...
Android 4.0中的源代码展示了如何通过定义URI权限来控制不同应用对联系人数据的访问权限。 4. **CursorLoader与LoaderManager**:在Android 4.0中,引入了Loader API来异步加载数据,CursorLoader是专门用于加载...
本项目专注于通过代码方式获取126和163邮箱的联系人列表,这通常涉及到邮件服务API的调用和身份验证。下面将详细阐述实现这一功能的关键知识点。 1. **邮箱API接口**: - 126和163邮箱由网易公司提供,它们提供了...
`ContactsQuery`很可能是一个包含上述功能的源码文件,可能包括了获取联系人、SIM卡联系人和最近联系人的代码。这个文件可能包含以下部分: - `queryContacts()`函数:用于获取所有联系人。 - `querySimContacts()`...
通过对这份源代码的分析和学习,开发者不仅可以掌握Android联系人管理的基础知识,还能提升在实际项目中处理用户数据的能力。同时,这也为开发其他类型的Content Provider,如日历、笔记等,提供了参考和启示。
在Android系统中,通讯录是用户管理联系人信息的核心组件,它允许用户存储、查看和管理他们的联系人数据。...通过解析和理解这些代码,可以加深对Android系统中联系人管理的理解,有助于开发涉及通讯录功能的应用。
本文将深入探讨Android联系人广播协议的相关知识点,并通过代码示例来帮助开发者理解其工作原理。 一、Android联系人广播事件 当用户在系统中添加、删除或修改联系人时,Android会发送一个Intent广播,这个广播携带...
在学习"黑马28期得到联系人代码"的过程中,通过实践这些知识点,初学者不仅可以掌握基本的编程技能,还能逐步理解软件开发的整体流程。通过实际操作,理论知识将更加巩固,同时也能培养解决问题的能力。
本文将详细讲解如何通过Android API来读取设备上的联系人信息,并提供一个具体的代码示例。 首先,为了访问Android系统的联系人数据,我们需要在AndroidManifest.xml文件中添加相应的权限声明: ```xml ``` 这是...
本篇文章将深入探讨如何实现一个“Android电话联系人页面布局”以及相关的代码实现。 首先,我们需要理解Android的联系人数据是如何存储的。在Android系统中,联系人信息存储在Content Provider中,主要通过`...
通过搜索栏实时搜索联系人 4.vCard格式导出并发送分享功能 5.检测系统通讯录是否有变化,有变化在通知栏通知,并更新联系人列表功能.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考...
1. **ContentProvider类**:实现了Android的ContentProvider接口,提供了一套标准的CRUD(创建、读取、更新、删除)操作,使得其他应用程序可以通过URI访问和操作联系人数据。 2. **SQLite数据库**:联系人的数据...
**jQuery联系人生成二维码代码详解** 在Web开发中,实现用户友好的交互功能常常能提升网站的用户体验。本文将深入探讨如何使用jQuery库来生成一个联系人二维码,使得用户可以通过扫描二维码快速添加到他们的微信...
总的来说,“ContactTest”项目应该是对这个过程的一个实践,通过阅读和分析项目代码,你可以更深入地理解Android联系人管理和自动过滤显示的实现原理。同时,了解和掌握这些知识对于开发高效、用户友好的Android...
这个“Android 获取系统联系人并发送短信demo”应该是提供了一个示例代码,帮助开发者理解如何实现这两个功能。下面我们将详细探讨这两个知识点。 **获取系统联系人** 在Android中,获取系统联系人的过程涉及读取...
获取联系人数据主要通过ContactsContract类,这是一个包含所有与联系人相关的常量和URI的类。 以下是获取联系人列表的基本步骤: 1. 创建一个ContentResolver对象,它是与Content Provider进行交互的接口。通常在...
通过深入研究【安卓联系人应用源码】,开发者不仅能学习到Android开发的基础知识,还能掌握高级特性,如数据存储、用户界面设计和组件间的协作,这对提升个人技能和开发高效、稳定的Android应用大有裨益。...
这段代码通过查询ContactsContract的PHONE数据URI,获取了所有联系人的显示名称和电话号码。你可以根据需要添加更多的字段,如电子邮件、地址等。 接下来,我们需要创建一个“特别关心”或“常用联系人”的列表。这...
3. **显示联系人选择界面**:创建一个Dialog或者BottomSheet,展示联系人列表。列表项应包含联系人头像、姓名等信息,并实现点击事件监听,以便用户选择联系人。 4. **处理选择结果**:用户选定联系人后,将联系人...
通过这个库,开发者可以创建一个UI,允许用户从他们的通讯录中选择一个或多个联系人。这一功能通常用于需要用户授权访问其通讯录的应用场景,比如推荐好友、邀请联系人等。 其次,`ZHContactManager`支持创建新的...