0
我需要获取联系人的照片。所以我得到了联系人的ID并使用以下功能获取照片。如何获取联系人的照片?
Log.i(MenuActivity.TAG, "START: getContactPhoto; PARAMETERS: id: " + String.valueOf(id));
Uri photoUri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, id);
Bitmap photo;
ContentResolver cr = context.getContentResolver();
InputStream is = ContactsContract.Contacts.openContactPhotoInputStream(cr, photoUri);
photo = BitmapFactory.decodeStream(is);
return photo;
而且这照片设置为ImageView的
if (photo != null) {
Log.d(MenuActivity.TAG, "Photo exists");
imageView.setImageBitmap(photo);
} else {
Log.e(MenuActivity.TAG, "No photo for contact " + name);
imageView.setImageResource(R.drawable.defult_foto);
}
我的logcat:
START: getContactPhoto; PARAMETERS: id: 148
Photo uri: content://com.android.contacts/contacts/148
No photo for contact Ivan
的方式,我得到接触ID:
Uri uri = ContactsContract.Data.CONTENT_URI;
String[] projection = new String[]{
ContactsContract.Contacts._ID,
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Event.CONTACT_ID,
ContactsContract.CommonDataKinds.Event.START_DATE,
};
String where =
ContactsContract.Data.MIMETYPE + "= ? AND " +
ContactsContract.CommonDataKinds.Event.TYPE + "=" + ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY;
String[] selectionArgs = new String[]{ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE};
String sortOrder = null;
ContentResolver cr = context.getContentResolver();
Cursor cursor = cr.query(uri, projection, where, selectionArgs, sortOrder);
if (cursor.moveToFirst()) {
while (cursor.moveToNext()) {
try {
id = "no-id";
birthday = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Event.START_DATE));
name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
// some code
} catch (Exception e) {
Log.e("Days", "No birthday date!");
}
}
}
cursor.close();
但最高审计机关认为没有我的联系人有照片,但它已经。我相信他是错误的。有任何想法吗?
PS我有点小白在andrid却又如此,如果它不会是很困难的具体
现在我在'InputStream is = ContactsContract.Contacts.openContactPhotoInputStream(cr,photoUri);'中出错了。我的应用只是停止 – SergaRUS 2014-11-06 09:16:52
你可以在这里发布logcat日志吗?同时在日志中打印photoUri – iago 2014-11-07 11:14:08
我已将它添加到问题@iago – SergaRUS 2014-11-07 12:29:26