2010-11-02 3 views
5

Я пишу приложение для социальных сетей, которое имеет функции синхронизации контактов. У меня есть рабочий код (из примера, который я нашел here), который вставляет контакты на v2.x в адаптер синхронизации.Android 1.x Contacts.Extensions для пользовательского типа учетной записи?

Однако программное обеспечение Motorola Blur не распознает контакты 2.x (я использую 2.2 Moto build на Droid X). Blur использует API контактов 1.x, но у меня возникают проблемы с поиском/пониманием примеров того, как его использовать. This page показывает, как выполнить запрос по имени, но я хочу: a) добавить и b) запросить тип настраиваемой учетной записи (или, возможно, MIME).

Код v2, который я использую, создает новый необработанный контакт, создает запись данных «StructuredName», а затем запись данных пользовательского типа MIME.

Как сделать эквивалент API 1.x (уровень 3)? Я думаю, что для этого предназначен класс Contacts.Extensions, но в лучшем случае документация неясна.

ответ

1

Модификации Motorola BLUR для контактов больше связаны с управлением учетными записями на устройстве и менее с изменениями в поставщике контента. Настоящая проблема при работе с устройством Motorola BLUR заключается в том, что вам необходимо установить ACCOUNT_NAME и ACCOUNT_TYPE на значение, которое хорошо воспроизводится с устройством.

Motorola - не единственное устройство, для которого это проблема. Как и в моей работе, я нашел другие устройства, приложения для контактов которых не очень хорошо знакомы с записями, которые добавляются в пользовательские учетные записи на устройстве.

Во время настройки вам нужно будет определить, на каком устройстве вы работаете, а затем определите, какую учетную запись вы будете использовать для хранения ваших контактов. Я нашел исключения для устройств Samsung Galaxy, HTC Sense и MOTOBLUR, для которых использование пользовательской учетной записи контакта не позволяет работать с вашими контактами в приложении-контакте (например, вы можете их добавлять, но не редактировать или невозможно вставить новые записи в свою учетную запись).

Я не могу использовать код, потому что он принадлежит моей работе, но могу вам сказать, что если вы используете следующую учетную запись для своих контактов на устройствах MOTOBLUR, она будет работать. У устройств Motorola на Verizon есть учетная запись помощника резервного копирования, которая отлично работает, и я использую учетную запись BLUR по умолчанию, которая, кажется, работает хорошо.

Ищите учетную запись на устройстве с типом com.motorola.android.buacontactadapter и именем «Телефон» и используйте это. Если этого нет, найдите учетную запись типа com.motorola.blur.service.bsutils.MOTHER_USER_CREDS_TYPE и используйте ее (с любым ее именем), и все будет установлено на устройствах Motorola.

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

+0

Пример, который я использовал, был следующим: http://www.c99.org/2010/01/23/writing-an-android-sync-provider-part-2/ У меня (счастливо) найдено что на BLUR> 2.2 (пряничный +) приложение для размытия контактов будет с радостью находить и работать с моими контактами API v2.x. Предыдущие версии все еще недовольны. –

+0

Motorola узнала об ошибках своих путей, последние версии BLUR (post stable4) будут работать для вас.К сожалению, они не обновляют старые устройства, поэтому только время вылечит ваши болезни. –

+0

Кажется, время вылечило этого больного. Почти ни одна моя пользовательская база не находится на <2.2 больше. Я собираюсь принять этот ответ, хотя я не пробовал этот подход. Спасибо за усилия, которые вы вложили в это. –

1

Для решения конца вашего вопроса:

Эта инфраструктура поддерживается только для структуры 2.x контактов, что, когда они ввели его.

Приложения для OEM-приложений на устройствах 1.X могут работать или не работать аналогичным образом.