Android 尝试将URI转换为位图时,URI无效

Android 尝试将URI转换为位图时,URI无效,android,Android,我要做的是让用户选择一个联系人,然后从我的应用程序中将相应的imageView设置为联系人的照片(如果有)。根据我目前所写的内容,我可以获得联系人照片的URI,但随后我得到了这个异常读取失败:EINVAL(无效参数),起初我认为这可能是因为一个空值,尽管我得到的URI是content://com.android.contacts/contacts/1/photo这是无效的URI吗?我尝试在imageView中设置它的方式如下: if (myUri != null){

我要做的是让用户选择一个联系人,然后从我的应用程序中将相应的imageView设置为联系人的照片(如果有)。根据我目前所写的内容,我可以获得联系人照片的URI,但随后我得到了这个异常
读取失败:EINVAL(无效参数)
,起初我认为这可能是因为一个空值,尽管我得到的URI是
content://com.android.contacts/contacts/1/photo
这是无效的URI吗?我尝试在imageView中设置它的方式如下:

            if (myUri != null){
            try {
                bitmap = BitmapFactory.decodeStream(getActivity().getContentResolver().openInputStream(myUri));
                firstImage.setImageBitmap(bitmap);              
            } catch (FileNotFoundException e) { 
                ;
            } 

如何解决此问题?

通过“阅读联系人”权限,您可以执行以下操作:

Uri myUri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_URI, contactId);

if (myUri != null){
    try {
        InputStream in = ContactsContract.Contacts
                .openContactPhotoInputStream(getActivity().getContentResolver(), myUri);
        bitmap = BitmapFactory.decodeStream(in);
        firstImage.setImageBitmap(bitmap);              
    } catch (FileNotFoundException e) { 
            ;
} 

我有几乎完全相同的代码,对我来说是有效的。也许你的uri有问题。我添加了如何构建Uri的代码行。也许是那个帮手,就是这样。显然uri有问题。非常感谢你!