当前位置: 移动技术网 > 移动技术>移动开发>Android > Android根据电话号码获得联系人头像实例代码

Android根据电话号码获得联系人头像实例代码

2019年07月24日  | 移动技术网移动技术  | 我要评论

在日常android手机的使用过程中,根据电话号码获得联系人头像,是经常会碰到的问题。本文即以实例形式讲述了android根据电话号码获得联系人头像是实现代码。分享给大家供大家参考之用。具体方法如下:

首先,通过contentprovider,可以访问android中的联系人等数据。常用的uri有:

联系人信息uri:content://com.android.contacts/contacts
联系人电话uri:content://com.android.contacts/data/phones
联系人邮件uri:content://com.android.contacts/data/emails

并且提供了根据电话号码获取data表数据的功能,方法为:data/phones/filter/号码,返回一个数据集。再通过数据集获得该联系人的contact_id,根据contact_id打开头像图片的inputstream,最后用bitmapfactory.decodestream()获得联系人的头像。

具体功能代码如下:

// 根据号码获得联系人头像
public static void get_people_image(string x_number){  
 
  // 获得uri
  uri urinumber2contacts = uri.parse("content://com.android.contacts/"
      + "data/phones/filter/" + x_number); 
  // 查询uri,返回数据集
  cursor cursorcantacts = context.getcontentresolver().query(
      urinumber2contacts, 
      null, 
      null,            
      null, 
      null);
  // 如果该联系人存在
  if (cursorcantacts.getcount() > 0) { 
    // 移动到第一条数据
          cursorcantacts.movetofirst();
          // 获得该联系人的contact_id
           long contactid = cursorcantacts.getlong(cursorcantacts.getcolumnindex("contact_id"));
          // 获得contact_id的uri
           uri uri = contenturis.withappendedid(contactscontract.contacts.content_uri, contactid);
          // 打开头像图片的inputstream
          inputstream input = contactscontract.contacts.opencontactphotoinputstream(context.getcontentresolver(), uri); 
          // 从inputstream获得bitmap
          bmp_head = bitmapfactory.decodestream(input);   
}<br>}

希望本文所述对大家的android程序设计有所帮助。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网