Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓:阅读gmail联系人';s全尺寸照片_Android_Photo_Contact - Fatal编程技术网

Android 安卓:阅读gmail联系人';s全尺寸照片

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

我试图在Imageview上阅读并显示联系人的全尺寸照片。下面的代码在本地创建了联系人的emulator中运行良好

在Attrix 4G上测试时,它的联系人与gmail同步,但没有显示全尺寸的联系人

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