2016-02-02 1 views
0

ВопросAndroid - Как перелинковать данные приложения с контактами после изменения телефонов/сброса телефона

Как перелинковать мои приложения внутренние данные в новую базу данных локальных контактов, после получения нового телефона или после того, как завод Переустановка Телефон?

Информация

Мое приложение использует телефоны контактов и связывает все это внутренние данные к контактам через ид.

После того, как пользовательская фабрика сбрасывает телефон или получает новый телефон, обычно первое, что они делают, это синхронизация с контактами с Google снова. Результатом является новая база данных локальных контактов с NEW ID, поэтому все мои внутренние ссылки на эти контакты нарушены.

Есть ли способ их восстановить? В настоящее время я предлагаю решение для экспорта/импорта, которое пытается переназначить контакты на основе имени + номера, но меня интересует, есть ли другой способ, лучший способ, который всегда работает ...

ответ

1

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

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

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

+0

Это наименьший момент, чтобы начать улучшать мой алгоритм ... Спасибо. – prom85