2010-10-14 3 views
1

У меня есть эти контакты, которые нужно импортировать непосредственно в определенную группу, которую я создал, в которой AFAIK добавляет, что добавление контактов в Учетной записи в api кажется сломанным (не может добавлять другие поля), поэтому я реализовал свои собственные Активность для добавления аккаунтов.Как добавить контакты непосредственно в группу без создания учетной записи?

Как добавить их непосредственно в группу?

ответ

1

Если вы говорите об андроиде 2.x, тогда группы существуют на основе каждой учетной записи. Сначала вы должны добавить свой контакт в учетную запись, прежде чем добавлять ее в группу.

Вы можете добавить его на учетную запись «устройство» по умолчанию вместо синхронизированной учетной записи, если вы знаете тип или имя учетной записи для этого устройства. Эти значения различны для каждого производителя, над которым я пытался писать код. Вы должны иметь возможность получить список этих значений из класса accountmanager. Нуль для обоих значений, по-видимому, работает на основной, но не срабатывает на каждом другом телефоне, который я пробовал.

Эти общие шаги должны работать:

  1. Создайте свой новый необработанный контакт в одной и той же учетной записи ваша группа будет
  2. Сохранить контакт (и пусть это синхронизация)
  3. Создание Вашей группы для этого та же учетная запись в таблице групп (если она не существует)
  4. Добавьте синхронизированный контакт в эту новую группу, создав запись в таблице groupmembership (это таблица данных с использованием типа mimetype groupmembership).
  5. Позвольте группе синхронизировать.

Осторожно: по крайней мере, для Android 2.1, прежде чем вы сможете добавлять новые контакты в новую группу, вы должны сначала добавить к ней существующий (синхронизированный) контакт. Если вы этого не сделаете и добавите новые, несинхронизированные контакты в недавно созданную пустую группу, эти контакты исчезнут с телефона при следующей синхронизации и не появятся на сервере (вы потеряете данные). Я не уверен, что это ошибка или просто ограничение текущей реализации группы.

+0

Как насчет добавления учетной записи без синхронизации, поскольку она нам не нужна? – Mikey

+1

Большинство устройств имеют учетную запись без синхронизации, которую вы можете использовать для этой цели. К сожалению, у каждого устройства, похоже, есть другое имя и тип учетной записи, поэтому вам придется выяснить, экспериментируя с AccountManager, чтобы узнать, какие учетные записи отображаются в списке getAccounts. Я знаю, что как Samsung, так и HTC используют очень разные учетные записи. Nexus one, похоже, использует null (который, если он используется на других устройствах, вызывает сбой). Вы также можете попытаться добавить свою учетную запись и тип учетной записи в диспетчер аккаунта, но, поскольку я этого не сделал, у меня нет конкретных подробностей. –

+0

Hi Marloke, mikedroid, я знаю этот вопрос очень давно, но у вас, ребята, есть продвижение в этой теме? Я хочу поделиться своими знаниями и выводами по этой конкретной проблеме – Creniale

Смежные вопросы