【发布时间】:2011-11-12 16:52:33
【问题描述】:
我的 google 联系人与 facebook 联系人(带照片)和 Skype 联系人(带照片)相关联。
我选择 Skype 照片作为联系人(通过通讯录应用程序)。地址簿显示带有所选(Skype)照片的联系人。
启动我的应用程序。通过联系人 ID 从 ContactsContract.Contacts.CONTENT_URI 请求照片 ID。将照片“加载”到 ImageView。一切似乎都很好——照片已加载。完成我的应用程序。
我选择 facebook 照片作为联系人(通过通讯录应用程序)。地址簿显示与所选(facebook)照片的联系人。
启动我的应用程序。再次通过联系人 ID 请求照片 ID。接收到的照片 ID 与之前的 ID 不同。将照片“加载”到 ImageView。照片尚未加载。 LogCat:“relolveUri 在错误的位图 uri 上失败:...”。为什么???
我的部分代码:
Cursor photoCursor = managedQuery(
ContactsContract.Contacts.CONTENT_URI,
new String[]{ ContactsContract.Contacts.PHOTO_ID },
ContactsContract.Contacts._ID + "=?",
new String[]{ contactId },
null);
String photoId = photoCursor.getString(photoCursor.getColumnIndex(ContactsContract.Contacts.PHOTO_ID));
Uri photoUri = Uri.withAppendedPath(ContactsContract.Data.CONTENT_URI, photoIdByContatId);
ImageView imageView = (ImageView)findViewById(R.id.photo);
imageView.setImageURI(photoUri);
【问题讨论】: