检测联系人是否有照片

ng9*_*g93 8 android uri photo file exists

我有一个ImageView,我正在使用Uri显示联系人图片,它总是看起来像这样:

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

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

ng9*_*g93 9

获取联系人照片的功能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;
}
Run Code Online (Sandbox Code Playgroud)

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

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


Chi*_*ins 6

可能通过使用ContactsContract.Data.PHOTO_ID.如果它没有值,则没有照片.