3
Gah,另一种应该很简单的方案证明是非常耗时和痛苦的。提取联系人的照片
我使用这个查询的联系人提供商:
private Cursor getContacts(){
Uri uri = ContactsContract.Contacts.CONTENT_URI;
String[] projection = new String[] {
ContactsContract.Contacts._ID,
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.Contacts.PHOTO_ID
};
......
return managedQuery(uri, projection, selection, selectionArgs, sortOrder);
}
这工作得很好,并检索联系人姓名,并在接触了一把它显示了PHOTO_ID领域的数字ID,我以为是我要求的PHOTO_ID。但是随后我将该ID推入此方法中以提取位图,它在每次接触时都失败,并且每次都为空。我正在测试一组包含Android联系人照片的联系人(我知道从Facebook联系人中提取照片时存在一些问题)。
private Bitmap loadContactPhoto(long id) {
Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, id);
InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(contentResolver, uri);
if (input == null) return null;
Bitmap bitmap = BitmapFactory.decodeStream(input);
return bitmap;
}
我错过了什么?
谢谢!你救了我的一天!但有没有人kbow如何从例如facebook同步提取? - 我知道它的高度讨论 – bricklore