Android-openContactPhotoInputStream为所有联系人照片ID返回NULL

Android-openContactPhotoInputStream为所有联系人照片ID返回NULL,android,null,image,contact,Android,Null,Image,Contact,升级到Android 4.0 ICS后,我的应用程序(包含带有图像的联系人列表)停止加载这些联系人的图像 调试之后,下面的行现在似乎总是返回NULL InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(cr, uri); 我根本没有更改应用程序,在升级到ICS之后,这种情况就开始发生了 我有读取联系人的权限 有人知道为什么会这样吗?他们能改变什么?这个方法是不推荐的还是什么 完整代码: publi

升级到Android 4.0 ICS后,我的应用程序(包含带有图像的联系人列表)停止加载这些联系人的图像

调试之后,下面的行现在似乎总是返回NULL

 InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(cr, uri);
我根本没有更改应用程序,在升级到ICS之后,这种情况就开始发生了

我有读取联系人的权限

有人知道为什么会这样吗?他们能改变什么?这个方法是不推荐的还是什么

完整代码:

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

doc说“返回照片的输入流,如果没有照片,则返回null”可能是这样的?问题是照片存在,至少在stock Contacts应用程序中,这些照片是针对Facebook和自定照片显示的。您是否检查过其他类似的应用程序是否可以显示这些图像?这正是我在应用程序中检索照片联系人时使用的代码,并且它正在工作。那么,您的ContentResolver和ID来自哪里?