听起来很糟糕,但我无法加载来自Android联系人的联系人照片。我尝试了很多代码,但没有任何效果。我的清单很好,添加了权限。厌倦了许多代码,包括来自Android.com的这个代码。它也没有用:
Cursor managedCursor = context.getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
new String[] { ContactsContract.Contacts._ID,
Phone.DISPLAY_NAME, Phone.NUMBER, Phone.PHOTO_ID },
null, null, Phone.DISPLAY_NAME + " ASC");
Uri contactUri = ContentUris.withAppendedId(Contacts.CONTENT_URI,
contactId);
Uri photoUri = Uri.withAppendedPath(contactUri,
Contacts.Photo.CONTENT_DIRECTORY);
Cursor cursor = getContentResolver()
.query(photoUri,new String[] { acts.Photo.PH.CommonDataKinds.Photo.PHOTO },
null, null, null);
if (cursor == null) {
return null;
}
try {
return getContentResolver().openInputStream(photoUri);
// if (cursor.moveToFirst()) {
// byte[] data = cursor.getBlob(0);
// if (data != null) {
// return new ByteArrayInputStream(data);
// }
// }
} catch (Exception ex) {
ex.printStackTrace();
}
我正在使用Kitkat在Google Nexus 4中进行测试。有人可以帮忙吗?
答案 0 :(得分:2)
使用ContactsContract.Contacts.CONTENT_URI
代替Contacts.CONTENT_URI
来获取联系人uri。根据此reference page,Contacts.CONTENT_URI
已被弃用。
另外,请检查这些: