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

Android - openContactPhotoInputStream returns NULL for all contact photo IDs

提问人:Elad Nava 提问时间:3/23/2012 更新时间:3/23/2012 访问量:2008

问:

升级到 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);
}
Android 图像 联系人

评论

0赞 zapl 3/23/2012
doc 说“返回照片的 InputStream,如果没有照片,则返回 null”也许是这样?
0赞 Elad Nava 3/31/2012
问题是照片存在,至少在库存联系人应用程序中,照片出现在 Facebook 和自行分配的照片中。
0赞 zapl 4/1/2012
您是否检查过其他类似的应用程序是否可以显示图像?
1赞 vggonz 4/22/2013
这正是我用于在我的应用程序中检索照片联系人的代码,并且它正在工作。那么,您的 ContentResolver 和 ID 从何而来?

答: 暂无答案