Android - openContactPhotoInputStream возвращает NULL для всех идентификаторов фотографий контактов - PullRequest
9 голосов
/ 23 марта 2012

После обновления до Android 4.0 ICS мое приложение, содержащее список контактов с изображениями, перестало загружать изображения для этих контактов.

После отладки кажется, что следующая строка теперь всегда возвращает NULL.

 InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(cr, uri);

Я вообще не менял приложение, сразу после обновления до ICS это начало происходить.

У меня есть разрешение READ_CONTACTS.

Кто-нибудь знает, почему это может произойти?Что они могли изменить?Этот метод не рекомендуется или что-то в этом роде?

Полный код:

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);
}
...