Android 安卓:阅读gmail联系人';s全尺寸照片
我试图在Imageview上阅读并显示联系人的全尺寸照片。下面的代码在本地创建了联系人的emulator中运行良好 在Attrix 4G上测试时,它的联系人与gmail同步,但没有显示全尺寸的联系人Android 安卓:阅读gmail联系人';s全尺寸照片,android,photo,contact,Android,Photo,Contact,我试图在Imageview上阅读并显示联系人的全尺寸照片。下面的代码在本地创建了联系人的emulator中运行良好 在Attrix 4G上测试时,它的联系人与gmail同步,但没有显示全尺寸的联系人 Uri contactUri = ContentUris.withAppendedId( ContactsContract.Contacts.CONTENT_URI, id); Uri displayPhotoUri = Uri.withAppendedPat
Uri contactUri = ContentUris.withAppendedId(
ContactsContract.Contacts.CONTENT_URI, id);
Uri displayPhotoUri = Uri.withAppendedPath(contactUri,
ContactsContract.Contacts.Photo.DISPLAY_PHOTO);
AssetFileDescriptor fd = cr.openAssetFileDescriptor(
displayPhotoUri, "r");
input = fd.createInputStream();
return BitmapFactory.decodeStream(input);
据我所知,问题仅仅是因为Gmail没有同步照片的高分辨率版本,尤其是对于较旧的设备/API级别 因此,尽管在照片可用的情况下代码可以工作,但对openAssetFileDescriptor的调用将失败,因为没有相应的hi-res文件
请参考这篇针对Android的报道(不正确?。了解我在Nexus4上如何使用上述代码
ContentResolver cr = getContext().getContentResolver();
PersonUri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, 3347);
Uri displayPhotoUri = Uri.withAppendedPath(PersonUri, ContactsContract.Contacts.Photo.DISPLAY_PHOTO);
try {
AssetFileDescriptor fd = cr.openAssetFileDescriptor(displayPhotoUri, "r");
input = fd.createInputStream();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(cr, PersonUri);
if(input != null){
showImage(mPhoto, BitmapFactory.decodeStream(input));
}else{
showImage(mPhoto, R.drawable.jb_picture_unknown);
}