1

我想以编程方式在“本地”地址簿中创建一个联系人(这样它就不会尝试同步,这会导致一些与 Exchange 的兼容性问题)。

如果本地地址簿已经存在,我可以使用 ABAddressBookCopyArrayOfAllSources 找到它以获取地址簿中的所有源,然后查找 sourceTypeRef 为“kABSourceTypeLocal”的 ABRecordRef - 如果我随后将该记录引用传递给 ABPersonCreateInSource,我可以添加一条记录到本地目录。

如果还没有本地地址簿,是否有人对我应该如何最好地在“本地地址簿”中创建记录有任何建议?

(另外,我怎么能在 iOS4 之前做到这一点,因为上面的调用当时不可用?)

谢谢

彼得

4

2 回答 2

1

你应该看看这篇文章: 在 iOS 4+ 中从 ABAddressBook 获取特定的 ABSource

它演示了如何在 ABAddressBook 中识别和定位特定来源 (ABSource)。虽然这段代码提到了函数 ABGroupCreateInSource(),但还有一个类似的函数 ABPersonCreateInSource() 用于处理人员。

于 2011-01-25T09:10:47.320 回答
1

我找到了一个简单的解决方法。由于您在没有任何预先存在的本地联系人时无法查看/添加本地联系人,因此可以安全使用以下解决方法:

  1. 假设您使用的是 Gmail (Exchange)
  2. 转到 Gmail 的邮件设置并禁用联系人同步
  3. 当系统提示您是要保留还是删除手机中的 Gmail 联系人时,请选择删除它们(不用担心,它们不会从 Gmail 中删除)
  4. 返回您的联系人。您现在可以创建一个本地联系人
  5. 最后,返回设置/邮件/Gmail 并重新启用通讯录同步
  6. 瞧,您的 Gmail 联系人已回到您的手机中,您现在有 1 个本地联系人,除了 Gmail 联系人组外,您还可以访问本地联系人组。

希望有帮助(我刚刚遇到同样的问题,发现这个解决方法对我很有用)。

本。

于 2011-12-27T18:48:45.877 回答