Отредактировано:
Почему вы не можете найти идентификатор контакта или ключ поиска с помощью необработанного идентификатора контакта? это ошибка в 2.1.
Ключ поиска был основан на имени контакта для несинхронизированных контактов.
http://comments.gmane.org/gmane.comp.handhelds.android.devel/130677
=============================================== ===================
Я еще не пробовал. Но я нашел некоторую информацию об этом.
http://developer.android.com/resources/articles/contacts.html
....
Если производительность является проблемой для вашего приложения, вы можете сохранить как поиск, так и длинный идентификатор контакта, и создать поисковый URI из обоих идентификаторов, как показано здесь:
Uri lookupUri = getLookupUri(contactId, lookupKey)
Когда оба идентификатора присутствуют в URI, система сначала попытается использовать длинный идентификатор. Это очень быстрый запрос. Если контакт не найден или найденный контакт имеет неправильный ключ поиска, поставщик контента проанализирует ключ поиска и отследит исходные необработанные контакты. Если ваше приложение массово обрабатывает контакты, вы должны поддерживать оба идентификатора. Если ваше приложение работает с одним контактом на действие пользователя, вам, вероятно, не нужно беспокоиться о сохранении длинного идентификатора.