Android - Невозможно получить фотографию контакта? - PullRequest
1 голос
/ 01 июня 2011

Я пытаюсь получить изображение контакта, используя идентификатор контакта.

Вот мой код: -

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);
}

Этот код возвращает ноль для всех моих контактов, включая те, которые имеютизображение.

Что я здесь не так делаю?

Пожалуйста, помогите !!

Спасибо.

Ответы [ 3 ]

4 голосов
/ 01 июня 2011

Ваши контакты синхронизируются с Facebook?Поскольку они, по-видимому, недоступны.

Если это не так, вы можете попробовать это:

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

Не был уверен, что у вас был импорт для ContactsContract вместо.

2 голосов
/ 01 июня 2011

Вы можете использовать следующий код для загрузки фотографии контакта.

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);

В противном случае Вы можете увидеть следующий URL

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

Спасибо Deepak

0 голосов
/ 27 августа 2012

Вы можете использовать этот код для получения фотографии в таблице базы данных контактов Android: Сначала получите контактный идентификатор.

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); 
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...