Есть ли способ получить все фотографии контактов за один раз? Я не хочу получать фото один за другим, используя идентификатор контакта. Можно ли это сделать?получение всех фотографий контакта одним выстрелом в android
Thx! Rahul.
Есть ли способ получить все фотографии контактов за один раз? Я не хочу получать фото один за другим, используя идентификатор контакта. Можно ли это сделать?получение всех фотографий контакта одним выстрелом в android
Thx! Rahul.
Я не верю, что вы можете получить ВСЕ фотографии с одним запросом. Это будет действительно большой объект курсора, который я чувствую, плюс все, что я читал о фактическом хранении фотографий в базе данных, вызывает проблемы.
Вместо этого вы можете легко просто запросить все контакты идентификаторы и захватить фотографии с помощью
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);}
Я сделал то же самое ... но это брало ад долгого времени, чтобы получить данные ... Я имеют около 1200 контактов в моем телефоне ... и он говорил около 15-20 секунд, чтобы получить все данные. Если я просто удалю загрузку изображений, звоните ... все контакты загружаются за 1 секунду. Пожалуйста, дайте мне знать, если есть другой способ. – rahul
Похоже, вам нужно будет сделать комбинацию дросселирования вызовов и кэширования изображений. Я не знаю вашего приложения, но нет никакого способа, чтобы вы отображали 1200 контактов одновременно. Вам нужно будет только называть фотографии, которые вам нужно отображать (может также следующие несколько), вместо того, чтобы все сразу –