Возможность настраиваемого поля контактов с заданным списком значений и производительностью поиска контактов - PullRequest
0 голосов
/ 28 мая 2010

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

Я хотел бы создать настраиваемое поле для контактов, которое пользователь может редактировать из основного приложения "Контакты"; однако пользователю должно быть разрешено выбирать только из четырех определенных значений. Короткий список строковых значений был бы идеальным, но было бы достаточно int с диапазоном min / max.

Мне интересно знать, возможно ли это в любом случае, но также интересно, имеет ли смысл идти по этому пути с точки зрения производительности. Точнее говоря, было бы лучше искать контакт (на основе номера телефона) каждый раз при получении звонка или SMS-сообщения или лучше хранить мой собственный набор данных (состоящий из имени, номеров и настраиваемого поля) и просто синхронизировать контактную информацию в ветке так часто? Или синхронизировать контакты при первом запуске приложения, а затем регистрировать изменения, используя ContentObserver?

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

Заранее спасибо.

1 Ответ

1 голос
/ 28 мая 2010

Я не вижу цели иметь свой собственный набор данных для контактов , хранящихся в вашей отдельной базе данных , так как вы, очевидно, столкнетесь с проблемами синхронизации. Вы можете использовать mimetype и хранить все, что вы хотите, против контакта, так же, как вы связались.

Всякий раз, когда вы хотите зацепить контакты, вы можете сделать это, используя ваш собственный mimetype. Вы получаете идентификатор контакта (от ContactsContract.Data.CONTENT_URI), а затем запускаете другой запрос, чтобы получить контактные данные (от ContactsContract.Contacts.CONTENT_URI). Обратите внимание, что это разные таблицы.

Я хотел бы создать настраиваемое поле для контактов, которое пользователь может редактировать из основного приложения "Контакты"

Я не вижу такой возможности, которую можно редактировать из основного приложения, когда вы используете свои собственные mimetypes, и у вас не так много вариантов здесь. Приложение основного контакта будет отображать только те поля, которые есть в SDK. Вы можете хранить сведения о контактах, но они не будут отображаться на встроенном экране редактирования контактов.

...