2015-11-11 1 views
0

Я разрабатываю приложение, которое должно извлекать все контакты из адресной книги и отображать их в соответствии с источником (Gmail, iCloud, Outlook, Facebook ecc). Я уже просмотрел все похожие предыдущие ответы на эту тему: кто-нибудь нашел ответ?ABAddressBook: Возможно ли получить имя источника?

Можно ли различать эти источники (например, используя почтовые адреса)?

Использование 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 

ответ

1

Если кто-то до сих пор застрял с этой проблемой, я нашел трюк решение для источников типа kABSourceTypeCardDAV (таких как Gmail и счета Yahoo).

Хитрость заключается в том, чтобы получить доступ к kABPersonLastNameProperty источника ABRecordRef источника, даже если это должно быть свойство ABPerson. Результатом является путь (я думаю, что контакты хранятся в телефоне), который содержит также почту/имя учетной записи.

Понятия не имею, как получить имя учетной записи в футляре kABSourceTypeExchange!