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