Мне нужна ваша помощь для получения моих фотографий контакта.Android Нет контактной фотографии
Я получаю все мои контакты с днем рождения. Теперь я должен попробовал фотографию человека как что:
...
while (contactCursor.moveToNext()) {
Contact c = Contact.createContact(contactCursor);
c.setPhoto(getContactPhoto(contentResolver, c.getId()));
contacts.add(c);
}
..
private static InputStream getContactPhoto(ContentResolver contentResolver, long contactId) {
Uri contactUri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, contactId);
Uri photoUri = Uri.withAppendedPath(contactUri, ContactsContract.Contacts.Photo.CONTENT_DIRECTORY);
Cursor cursor = contentResolver.query(photoUri, new String[] {ContactsContract.Contacts.Photo.PHOTO}, null, null, null);
if (cursor == null) {
return null;
}
try {
if (cursor.moveToFirst()) {
byte[] data = cursor.getBlob(0);
if (data != null) {
return new ByteArrayInputStream(data);
}
}
} finally {
cursor.close();
}
return null;
}
Моя проблема в настоящее время, что я не в состоянии получить любую фотографию контактов (Cursos размер = 0). По телефону (Xperia Z1 Compact) обязательно свяжитесь с фото.
Моя цель состоит в том, чтобы затем установить фотографию так:
if(contact.getPhoto() != null) {
Bitmap cPhoto = BitmapFactory.decodeStream(contact.getPhoto());
holder.photo.setImageBitmap(cPhoto);
} else {
ShapeDrawable d = new ShapeDrawable(new OvalShape());
d.getPaint().setColor(Color.BLUE);
d.setBounds(10, 10, 20, 20);
holder.photo.setImageDrawable(d);
}
Большое вам спасибо за вашу помощь.
Спасибо за ваш ответ. Но я постараюсь понять свою ошибку. Для того же контакта у меня есть разные фото uri's: - getContactPhoto: photoUri is: content: //com.android.contacts/contacts/9444/photo - контактное свойство: ContactsContract.Contacts.PHOTO_URI is: content: // com .android.contacts/contacts/243/photo Так что я не могу понять это поведение. Это когда фотография из разных источников? Google, FB и т. Д.? – bluepix