检测联系人是否有照片

我有一个ImageView,我使用Uri显示一个联系人图片,它总是看起来类似于这个:

内容://com.android.contacts/contacts/34/photo

我将如何能够检测到这张照片是否存在,就好像它不是我想要使用占位符(存储在我的可绘制文件夹中)。 目前它只是显示一个空白的图像。

Solutions Collecting From Web of "检测联系人是否有照片"

一个获取联系人照片的函数uri:

public Uri getPhotoUri(Integer contactid) { Cursor photoCur = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null, ContactsContract.Contacts.IN_VISIBLE_GROUP + " = '1'", null, ContactsContract.Contacts.DISPLAY_NAME+" COLLATE LOCALIZED ASC"); photoCur.moveToPosition(contactid); Uri person = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, photoCur.getLong(photoCur.getColumnIndex(ContactsContract.Contacts._ID))); Uri photo = Uri.withAppendedPath(person, ContactsContract.Contacts.Photo.CONTENT_DIRECTORY); return photo; } 

并调用该函数(contactimage是一个ImageView):

 Uri contactphoto = getPhotoUri(2); contactimage.setImageURI(contactphoto); if (contactimage.getDrawable() == null) { contactimage.setImageResource(R.drawable.contactplaceholder); } 

可能通过使用ContactsContract.Data.PHOTO_ID 。 如果它没有价值,那么没有照片。