我正在开发一个应用程序,它必须从地址簿中检索所有联系人并根据来源(Gmail,iCloud,Outlook,Facebook ecc)显示它们。我已经查阅了关于这个主题的所有类似的先前答案:有人找到了答案吗?
是否可以区分这些来源(例如使用邮件地址)?
使用kABSourceTypeProperty
和kABSourceNameProperty
似乎无效,因为两个Gmail帐户将具有相同的名称和相同的类型。
还有一种方法可以有一个更重要的名字吗? 现在我只有这样的名字:
- name = "" (empty string) for Facebook contacts
- name = "Card" for iCloud contacts
- name = "Address Book" for Gmail contacts
- name = nil for Local Address Book, etc
答案 0 :(得分:1)
如果其他人仍然遇到这个问题我找到了kABSourceTypeCardDAV
类型的来源(例如Gmail和Yahoo帐户)的技巧解决方案。
诀窍是访问源kABPersonLastNameProperty
的{{1}},即使它应该只是ABRecordRef
属性。结果是一条路径(我认为联系人存储在手机中的位置),其中还包含帐户的邮件/名称。
仍然不知道如何在ABPerson
案例中获取帐户名称!