Android - 无法获取联系人照片?

发布于 2024-11-10 17:59:03 字数 461 浏览 2 评论 0原文

我正在尝试使用联系人 ID 获取联系人图像。

这是我的代码:-

public Bitmap getDisplayPhoto(Long id)
{
    Uri uri = ContentUris.withAppendedId(Contacts.CONTENT_URI,id);
    InputStream input = Contacts.openContactPhotoInputStream(this.getContentResolver(), uri);
    if (input == null)
    {
       return null;
    }
    return BitmapFactory.decodeStream(input);
}

此代码为我的所有联系人(包括具有图像的联系人)返回 null。

我在这里做错了什么?

请帮助!

谢谢。

i am trying to fetch a contact image using contact id.

Here is my code :-

public Bitmap getDisplayPhoto(Long id)
{
    Uri uri = ContentUris.withAppendedId(Contacts.CONTENT_URI,id);
    InputStream input = Contacts.openContactPhotoInputStream(this.getContentResolver(), uri);
    if (input == null)
    {
       return null;
    }
    return BitmapFactory.decodeStream(input);
}

This code is returning null for all of my contacts including those which has an image.

What am i doing wrong here?

Please Help!!

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

野侃 2024-11-17 17:59:03

您的联系人信息是否从 Facebook 同步?因为那些似乎无法访问。

如果情况并非如此,您可能需要尝试以下操作:

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

不确定您是否已导入 ContactsContract

Are your contacts synced from Facebook? Because those appear to not be accessible.

If that's not the case, you may want to try this:

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

Wasn't sure if you had the import for ContactsContract in place.

陌上青苔 2024-11-17 17:59:03

您可以使用以下代码加载联系人的照片。

Cursor c = getContentResolver().query(People.CONTENT_URI, new String[] { People._ID, People.NAME }, null, null, null);

    int idCol = c.getColumnIndex(People._ID);
    long id = c.getLong(idCol);
    Uri uri = ContentUris.withAppendedId(People.CONTENT_URI, id);
    Bitmap bitmap = People.loadContactPhoto(context, uri, R.drawable.icon, null);

否则
您可以看到以下网址

http://thinkandroid.wordpress.com/2010/01/19/retriving-contact-information-name-number-and-profile-picture/

谢谢
迪帕克

You can use the following code to load photo of a contact.

Cursor c = getContentResolver().query(People.CONTENT_URI, new String[] { People._ID, People.NAME }, null, null, null);

    int idCol = c.getColumnIndex(People._ID);
    long id = c.getLong(idCol);
    Uri uri = ContentUris.withAppendedId(People.CONTENT_URI, id);
    Bitmap bitmap = People.loadContactPhoto(context, uri, R.drawable.icon, null);

Otherwise
You can see the following URL

http://thinkandroid.wordpress.com/2010/01/19/retrieving-contact-information-name-number-and-profile-picture/

Thanks
Deepak

梅倚清风 2024-11-17 17:59:03

您可以使用此代码来获取 Android 联系人数据库表中的照片:
首先获取联系人 ID。

long _id = Long.parseLong(id);
     Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, _id);
     InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(cr, uri);

     if(input!=null){
         flag=true;
         Bitmap bitmap=BitmapFactory.decodeStream(input);    

        ImageView image=(ImageView)findViewById(R.id.imageView1);
        image.setImageBitmap(bitmap); 
    }

You can used this code to fetch the photo in android contact database table:
First of fetch the contact id.

long _id = Long.parseLong(id);
     Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, _id);
     InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(cr, uri);

     if(input!=null){
         flag=true;
         Bitmap bitmap=BitmapFactory.decodeStream(input);    

        ImageView image=(ImageView)findViewById(R.id.imageView1);
        image.setImageBitmap(bitmap); 
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文