Как создать контакт в "локальной" адресной книге?

Я хочу создать контакт программно в "локальной" адресной книге (чтобы он не пытался синхронизироваться, что вызывает некоторые проблемы совместимости с Exchange).

Если локальная адресная книга уже существует, я могу найти ее, используя ABAddressBookCopyArrayOfAllSources, чтобы получить все источники в адресной книге, затем найдите ABRecordRef с sourceTypeRef, равным "kABSourceTypeLocal"- если я затем передам этот recordRef в ABPersonCreateInSource, я могу добавить запись в локальный каталог.

У кого-нибудь есть какие-либо предложения относительно того, как мне лучше всего создать запись в "локальной адресной книге", если там уже нет локальной адресной книги?

(также, как я мог сделать это до iOS4, так как вышеупомянутые звонки не были доступны тогда?)

Спасибо

Питер

2 ответа

Решение

Вы должны взглянуть на этот пост: Получение конкретного ABSource из ABAddressBook в iOS 4+

это демонстрирует, как идентифицировать и предназначаться для определенных источников (ABSource) в ABAddressBook. Хотя в этом коде упоминается функция ABGroupCreateInSource(), существует аналогичная функция ABPersonCreateInSource() для работы с людьми.

Я нашел простой обходной путь. Поскольку вы не можете видеть / добавлять локальные контакты, если у вас нет ранее существовавшего локального контакта, будет безопасно использовать следующий обходной путь:

  1. Давайте представим, что вы используете Gmail (Exchange)
  2. Перейдите в настройки почты для Gmail и отключите синхронизацию контактов.
  3. Когда появится запрос, хотите ли вы сохранить или удалить контакты Gmail со своего телефона, выберите УДАЛИТЬ их (не волнуйтесь, они не будут удалены из Gmail)
  4. Вернитесь к своим контактам. Теперь вы можете создать один локальный контакт
  5. Наконец, вернитесь в Настройки / Почта / Gmail и снова включите синхронизацию контактов.
  6. Вуаля, ваши контакты Gmail вернулись в ваш телефон, и теперь у вас есть 1 локальный контакт, который позволяет вам получить доступ к локальной группе контактов в дополнение к группе контактов Gmail.

Надеюсь, что это помогает (у меня была та же проблема, и я нашел этот обходной путь, который отлично работает для меня).

Бен.

Другие вопросы по тегам