Android 1.x Contacts.Extensions для пользовательского типа учетной записи?

Я пишу приложение для социальных сетей с функцией синхронизации контактов. У меня есть рабочий код (из примера, который я нашел здесь), который вставляет контакты версии 2.x в адаптер синхронизации.

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

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

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


person Jon O    schedule 02.11.2010    source источник


Ответы (2)


Изменения 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.

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

person Jerry Brady    schedule 21.09.2011
comment
Я использовал следующий пример: c99.org/2010/01/23/writing-an-android-sync-provider-part-2 Я (к счастью) обнаружил, что в BLUR › 2.2 (пряничный пряник+) приложение для размытия контактов с радостью найти и работать с моими контактами API v2.x. Предыдущие версии по-прежнему недовольны. - person Jon O; 05.10.2011
comment
Motorola усвоила ошибку своего пути, последние версии BLUR (пост стабильная 4) будут работать для вас. К сожалению, они не обновляют старые устройства, поэтому только время вылечит ваши недуги. - person Jerry Brady; 05.11.2011
comment
Кажется, время вылечило эту болезнь. Почти никто из моей пользовательской базы больше не использует ‹2.2. Я собираюсь принять этот ответ, хотя я не пробовал этот подход. Спасибо за усилия, которые вы приложили к этому. - person Jon O; 07.08.2012

Чтобы ответить на конец вашего вопроса:

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

Приложения OEM Contacts на устройствах 1.X могут работать одинаково, а могут и не работать.

person escape-llc    schedule 13.10.2011