为了账号安全,请及时绑定邮箱和手机立即绑定

如何加载联系人照片?

如何加载联系人照片?

繁花不似锦 2019-10-25 15:37:31
我在为Android中的联系人加载照片时遇到问题。我已经用谷歌搜索了一个答案,但到目前为止却空无一人。有没有人举一个查询联系人然后加载照片的例子?因此,给定一个contactUri来自活动结果,该结果称为usingstartActivityForResult(new Intent(Intent.ACTION_PICK,ContactsContract.CommonDataKinds.Phone.CONTENT_URI),PICK_CONTACT_REQUEST) 是:内容://com.android.contacts/data/1557loadContact(..)正常工作。但是,当我调用getPhoto(...)方法时,我得到的照片InputStream为空值。这也令人困惑,因为URI值不同。contactPhotoUri评估为:内容://com.android.contacts/contacts/1557请参阅以下代码中的内联注释。 class ContactAccessor {    /**     * Retrieves the contact information.     */    public ContactInfo loadContact(ContentResolver contentResolver, Uri contactUri) {        //contactUri --> content://com.android.contacts/data/1557        ContactInfo contactInfo = new ContactInfo();        // Load the display name for the specified person        Cursor cursor = contentResolver.query(contactUri,                                            new String[]{Contacts._ID,                                                          Contacts.DISPLAY_NAME,                                                          Phone.NUMBER,                                                         Contacts.PHOTO_ID}, null, null, null);        try {            if (cursor.moveToFirst()) {                contactInfo.setId(cursor.getLong(0));                contactInfo.setDisplayName(cursor.getString(1));                contactInfo.setPhoneNumber(cursor.getString(2));            }        } finally {            cursor.close();        }                return contactInfo;  // <-- returns info for contact    }显然,我在这里做错了,但我似乎无法弄清楚问题出在哪里。谢谢。
查看完整描述

3 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

这对我有用:


public static Bitmap loadContactPhoto(ContentResolver cr, long  id) {

    Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, id);

    InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(cr, uri);

    if (input == null) {

        return null;

    }

    return BitmapFactory.decodeStream(input);

}


查看完整回答
反对 回复 2019-10-25
  • 3 回答
  • 0 关注
  • 391 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信