восстановление всех фотографий контактов в одном кадре в Android

1

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

Спасибо! Рахул.

Теги:
photos

1 ответ

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 сек. Пожалуйста, дайте мне знать, если есть другой способ.
  • 0
    Похоже, вам придется смешивать звонки и кэширование изображений. Я не знаю ваше приложение, но нет никакого способа, которым вы отображаете 1200 контактов одновременно. Вам нужно будет только вызвать фотографии, которые вам нужно отобразить (возможно, и следующие несколько), вместо того, чтобы получить все сразу

Ещё вопросы

Сообщество Overcoder
Наверх
Меню