获取联系人的照片这是同步与Facebook为Android [英] Get contacts photo which are synced with facebook for android

查看:114
本文介绍了获取联系人的照片这是同步与Facebook为Android的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想显示联系人图片在我的应用程序,但我得到那些谁是手动添加,而不是只那些被同步与Facebook的照片。如何解决此问题?下面是我下面的code:

 开放的URI = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI,的Long.parseLong(PHOTOID));
输入的InputStream = ContactsContract.Contacts.openContactPhotoInputStream(context.getContentResolver(),URI);
返回BitmapFactory.de codeStream(输入);
 

解决方案

它不会对于从FB只同步联系人的工作。你需要使用FB图形API,并且可以从那里的照片;你需要知道联系人的Facebook名称。

 位图contactPhoto = getImageBitmap(http://graph.facebook.com/mathiaslin/picture?type=square);

 最后的私有静态位图getImageBitmap(字符串URL){
    位图BM = NULL;
    尝试 {
        URLConnection的康恩=新的网址(URL).openConnection();
        conn.connect();
        InputStream的是= conn.getInputStream();
        的BufferedInputStream双=新的BufferedInputStream(是);
        BM = BitmapFactory.de codeStream(之二);
        bis.close();
        is.close();
    }赶上(IOException异常E){
        Log.e(TAG,错误获取位图,E);
    }
    返回BM;
}
 

I am trying to show contact pictures in my application but I am getting pictures of those who were added manually only and not those which are synced with facebook. How to work around this? Here is my code below:

Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, Long.parseLong(PhotoId));
InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(context.getContentResolver(), uri);
return BitmapFactory.decodeStream(input);

解决方案

It doesn't work for contacts that are synced from FB only. You'll need to use the FB graph API and fetch the photo from there; and you need to know the contacts facebook name.

 Bitmap contactPhoto = getImageBitmap("http://graph.facebook.com/mathiaslin/picture?type=square");

 final private static Bitmap getImageBitmap(String url) {
    Bitmap bm = null;
    try {
        URLConnection conn = new URL(url).openConnection();
        conn.connect();
        InputStream is = conn.getInputStream();
        BufferedInputStream bis = new BufferedInputStream(is);
        bm = BitmapFactory.decodeStream(bis);
        bis.close();
        is.close();
    } catch (IOException e) {
        Log.e(TAG, "Error getting bitmap", e);
    }
    return bm;
}

这篇关于获取联系人的照片这是同步与Facebook为Android的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆