如何在“本地”地址簿中创建联系人?
问题描述:
我想以编程方式创建一个联系人到“本地”地址簿(以便它不会尝试同步,这会导致与Exchange有一些兼容性问题)。如何在“本地”地址簿中创建联系人?
如果本地地址簿中已经存在,我可以用ABAddressBookCopyArrayOfAllSources获得在通讯簿中的所有来源找到它,然后寻找与“kABSourceTypeLocal”的sourceTypeRef的ABRecordRef - 如果我再传递recordRef到ABPersonCreateInSource,我可以将记录添加到本地目录。
有没有人有任何建议,我应该如何最好在“本地地址簿”中创建记录,如果不存在本地地址簿?
(也,我怎么能做到这一点预iOS4的,如上面的电话都是不可呢?)
感谢
彼得
答
你应该看看这篇文章: Obtaining Specific ABSource from ABAddressBook in iOS 4+
演示如何识别和定位ABAddressBook内的特定源(ABSource)。虽然这段代码提到了函数ABGroupCreateInSource(),但是有一个类似的函数ABPersonCreateInSource()用于处理人员。
答
我找到了一个简单的解决方法。 既然你不能看/添加本地联系人,当你没有任何预先存在的本地联系人,以下解决方法将是安全的使用方法:
- 让你使用Gmail(交换)假装
- 转到您的Gmail邮件设置和禁用联系人同步
- 在提示您是否要保留或从手机中删除的Gmail联系人 ,选择删除它们(不要担心,他们 不会从Gmail中删除)
- 回到你的联系人。现在,您可以创建一个本地联系人
- 最后,返回到设置/电子邮件/ Gmail和重新启用 联系人同步
- 瞧,您的Gmail联系人是回你的电话,你现在 有1次本地接触时除了Gmail联系人组之外,您还可以访问本地联系人 组。
希望有帮助(我只是有同样的问题,并发现这种解决方法,对我很好)。
本。
嗨,我只是想确认....你是否希望能够保存联系人到默认联系人应用程序? – Pavan 2011-01-13 01:07:21
并非完全如此,因为默认地址簿可能不是本地地址簿,并且我需要本地地址簿(或其他一些避免同步的方式,因为通过重新格式化电子邮件地址来杀死我的联系人记录)。如果我手动创建本地地址簿(即“在我的iPhone上”在联系人组页面中)并保存联系人,我的应用程序工作得很好,但我想让这个透明给用户。 – 2011-01-13 13:06:39