检测联系人是否有照片

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

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

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

  • 是否有可能使用Uri.Builder,而不是“//”部分?
  • Android Webview shouldOverrideUrlLoading方法
  • Android - 查询SMS ContentProvider?
  • Uri Builder在android - '/'被'%2F'replace,“:”被replace为“%3A”
  • 无法在外部应用程序中打开PDF文件
  • 找出所有关于Android Uri类 - 使用和目的
  • 使用gridview从SD卡上的特定文件夹显示图像
  • 获取Uri Android的真实路径
  • 一个获取联系人照片的函数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 。 如果它没有价值,那么没有照片。