2012-02-23 2 views

ответ

0

Я не верю, что вы можете получить ВСЕ фотографии с одним запросом. Это будет действительно большой объект курсора, который я чувствую, плюс все, что я читал о фактическом хранении фотографий в базе данных, вызывает проблемы.

Вместо этого вы можете легко просто запросить все контакты идентификаторы и захватить фотографии с помощью

public static Bitmap loadContactPhoto(ContentResolver cr, long id) { 
Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, id); 
InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(cr, uri); 
if (input == null) { 
    return null; 
} 
return BitmapFactory.decodeStream(input);} 
+0

Я сделал то же самое ... но это брало ад долгого времени, чтобы получить данные ... Я имеют около 1200 контактов в моем телефоне ... и он говорил около 15-20 секунд, чтобы получить все данные. Если я просто удалю загрузку изображений, звоните ... все контакты загружаются за 1 секунду. Пожалуйста, дайте мне знать, если есть другой способ. – rahul

+0

Похоже, вам нужно будет сделать комбинацию дросселирования вызовов и кэширования изображений. Я не знаю вашего приложения, но нет никакого способа, чтобы вы отображали 1200 контактов одновременно. Вам нужно будет только называть фотографии, которые вам нужно отображать (может также следующие несколько), вместо того, чтобы все сразу –

Смежные вопросы