最近在做iOS系统通讯录备份到服务器,并且可以从服务器中下载备份文件恢复到手机的功能,部分实现细节记录如下。

将iphone系统通讯录生成.vcf文件

ABAddressBookRef addressBook = ABAddressBookCreate();
CFArrayRef contacts = ABAddressBookCopyArrayOfAllPeople(addressBook);
CFDataRef vcards = (CFDataRef)ABPersonCreateVCardRepresentationWithPeople(contacts);
NSString *vcardString = [[NSString alloc] initWithData:(__bridge NSData *)vcards encoding:NSUTF8StringEncoding];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *folderPath = [paths objectAtIndex:0];
NSString *filePath = [folderPath stringByAppendingPathComponent:@"contacts.vcf"];
[vcardString writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:nil];

运行后系统沙盒Document目录下会生成contacts.vcf文件,上传至服务器即可。

通讯录恢复:

从服务器下载contents.vcf文件,用系统通讯录程序打开即可恢复至手机。或者代码解析.vcf文件更新通讯录即可。

 NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);NSString *plistPath = [paths objectAtIndex:0];NSString *filePath =[plistPath stringByAppendingPathComponent:@"contacts.vcf"];CFDataRef vCardData = (CFDataRef)[filePath dataUsingEncoding:NSUTF8StringEncoding]; ABAddressBookRef book = ABAddressBookCreate();ABRecordRef defaultSource = ABAddressBookCopyDefaultSource(book);CFArrayRef vCardPeople = ABPersonCreatePeopleInSourceWithVCardRepresentation(defaultSource, vCardData);for (CFIndex index = 0; index < CFArrayGetCount(vCardPeople); index++) {ABRecordRef person = CFArrayGetValueAtIndex(vCardPeople, index);ABAddressBookAddRecord(book, person, NULL);CFRelease(person);}CFRelease(vCardPeople);CFRelease(defaultSource);ABAddressBookSave(book, NULL);CFRelease(book);

注意:ABPersonCreateVCardRepresentationWithPeople只适用ios5.0以上系统。

有什么问题可以留言问我哟?

转载于:https://www.cnblogs.com/tylerzhang/p/6913401.html

iphone通讯录的备份与恢复相关推荐

  1. iphone通讯录批量删除_iPhone通讯录删除了如何恢复?用对方法快速找回,亲测有效!_...

    2020年11月03日 16:50作者:黄页编辑:黄页 iPhone通讯录删除了如何恢复?很多时候我们都已经习惯了用微信去传递感情,去跟朋友或者是同事沟通,因为这样既方便又快捷,小编也是如此.但是很多 ...

  2. iPhone通讯录导入及备份方法

    现在大家经常更换手机,刚接触iphone的朋友可能会无从下手,下面介绍两种方法: 方法1:把原有手机卡(SIM)上的通讯录导入iphone iPhone手机使用手册-"通讯录"操作 ...

  3. iphone通讯录备份怎么导出来

    现在手机已经成为用户必不可少的社交工具之一,而手机上的通讯录是非常重要的,最直接连接的途径,那么iPhone通讯录备份怎么导出来呢?如何才能导出来轻松传输到另一台手机上呢,下面就为大家带来一个通讯录导 ...

  4. 苹果电话录到android,iphone通讯录导出到安卓手机教程

    目前市面上的手机,除了iphone,大多数就是安卓了.不少用户在ios和安卓阵营中变动.有不少iphone用户转到安卓阵营,不过其中有个麻烦事就是很多人不知道iphone通讯录应该怎么导出到安卓手机. ...

  5. iPhone通讯录号码不见了怎么恢复

    在玩手机的时候最郁闷的就是手机突然出问题了,比如iPhone通讯录突然丢失了怎么办,电话号码不小心删除了怎么恢复.那么当我们遇到这种问题的时候,怎么能把通讯录中的号码恢复回来呢?今天,小编给大家带来一 ...

  6. 【整理】在Windows系统中编辑管理iPhone通讯录

    [2019年1月24日] [出现问题] 在Windows系统中编辑管理iPhone通讯录? [问题原因] 通讯录太乱了,需要重新整理. [解决方案] 1.手机端,设置在iCloud中保存通讯录. 2. ...

  7. iPhone通讯录如何完整导入到新手机

    概要:iPhone通讯录如何完整导入到新手机?在此部分中,我们将示范几个从iPhone转移通讯录到另一台iPhone的选项.其中,第一种更为推荐,因为更灵活且更容易操作.当然您也可以根据自身情况选择喜 ...

  8. iPhone通讯录批量整理方法

    公司内部有员工小号,原本的编排规则发生了变动, 导致很多的来电无法识别,张冠李戴.今天闲来无事,整理了一下自己iPhone的通讯录,想的应该挺简单,但实际操作起来,却遇到了不少麻烦,进过一番特意记录一 ...

  9. iphone通讯录 android,3个方法,教你如何快速而又有效的将联系人从iPhone转移到安卓...

    3个方法,教你如何快速而又有效的将联系人从iPhone转移到安卓 曾经有一段时间将联系人从一个移动平台转移到另一个移动平台意味着手动输入无数名称,电话号码和其他信息.值得庆幸的是,现在智能手机可以为我 ...

最新文章

  1. Android 打包 aar文件的流程以及aar的引用
  2. 中国第一个发《Nature》的竟然是清朝人!被皇帝夸天下第一,他却觉得羞耻..........
  3. stat函数_数据分析工具入门 掌握这些Excel函数就够了
  4. vuejs项目性能优化 - 总结篇
  5. 【flink】flink写入clickhouse Error while starting CH writer AccessDeninedExcepton
  6. 抓住六个点,谈唯品会的峰值系统应对实践
  7. 浅谈axios.interceptors拦截器
  8. 自治系统间的路由协议--BGP详细介绍
  9. cfd计算机模拟,CFD软件数值模拟分析(中联智泵)
  10. layui数据表格接口_layui后台管理—table 数据表格详细讲解
  11. vue 中使用 pug
  12. win7下安装MySQL的步骤
  13. Good Bye 2020 B
  14. 小程序用什么开发?快速开发一个自己的微信小程序教程
  15. python头像变二维码_学了Python之后,美化二维码如此简单
  16. java highchart统计图_java+highchart实现分类下钻柱形图
  17. 深入浅出filament Android编译脚本
  18. android java 线程通信_Android 线程间通信
  19. 3GPP TS 23501-g51 中英文对照 | 4.1 General concepts
  20. OGRE的学习资源简单总结

热门文章

  1. JScript 06 根据成绩平均分划分等级
  2. 机器学习——不可逆矩阵处理
  3. 数据库 之 round函数
  4. 电信物联网平台插件开发相关总结
  5. springBoot使用poi导出Excel
  6. kindle paperwhite3 android,Kindle Paperwhite3入手20天感受
  7. IO流,小白入门基础知识
  8. Tracup已证明,高效敏捷的沟通与协作可提升IT生产力
  9. CGAL学习记录——降采样
  10. [FirefoxOS_开发环境]Linux和Ubuntu环境下B2G(Firefox OS)安装、编译、测试教程集合