欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2022-04-30 23:00:33
在日常android手机的使用过程中,根据电话号码获得联系人头像,是经常会碰到的问题。本文即以实例形式讲述了android根据电话号码获得联系人头像是实现代码。分享给大家供...

在日常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程序设计有所帮助。