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

 更新时间:2014年09月03日 10:17:27   投稿:shichen2014  
这篇文章主要介绍了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程序设计有所帮助。

相关文章

  • Android Handler中的休眠唤醒实现详解

    Android Handler中的休眠唤醒实现详解

    这篇文章主要为大家介绍了Android Handler中的休眠唤醒实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • Android开发实现ListView点击item改变颜色功能示例

    Android开发实现ListView点击item改变颜色功能示例

    这篇文章主要介绍了Android开发实现ListView点击item改变颜色功能,涉及Android布局及响应事件动态变换元素属性相关操作技巧,需要的朋友可以参考下
    2017-11-11
  • Android中Intent习惯用法

    Android中Intent习惯用法

    这篇文章主要介绍了Android中Intent习惯用法,演示了如何在Android中利用Intent进行拍照、摄像、打电话、发短信、发邮件等,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • Android数据持久化之Preferences机制详解

    Android数据持久化之Preferences机制详解

    这篇文章主要介绍了Android数据持久化之Preferences机制,较为详细的分析了Android数据持久化的概念、Preferences机制的原理与相关实现、使用技巧,需要的朋友可以参考下
    2017-05-05
  • Android Studio3.0.1填坑笔记

    Android Studio3.0.1填坑笔记

    IntelliJ IDEA 功能强大,是Jet Brains 公司开发商业IDE(集成开发环境),同时支持Java, Scala 和Groovy。下面小编给大家带来了Android Studio3.0.1填坑笔记,需要的朋友一起看看吧
    2018-01-01
  • anndroid使用ViewPager实现三个fragment切换

    anndroid使用ViewPager实现三个fragment切换

    这篇文章主要介绍了anndroid使用ViewPager实现三个fragment切换,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • Android的Touch事件处理机制介绍

    Android的Touch事件处理机制介绍

    Android的Touch事件处理机制比较复杂,特别是在考虑了多点触摸以及事件拦截之后,有需求的朋友可以参考下
    2012-11-11
  • Android自定义View onDraw()方法会调用两次的问题解决

    Android自定义View onDraw()方法会调用两次的问题解决

    这篇文章主要介绍了Android自定义View onDraw()方法会调用两次的问题解决,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-01-01
  • Android评论图片可移动顺序选择器(推荐)

    Android评论图片可移动顺序选择器(推荐)

    这篇文章主要介绍了 Android评论图片可移动顺序选择器的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-12-12
  • android顶部(toolbar)搜索框实现代码

    android顶部(toolbar)搜索框实现代码

    这篇文章主要介绍了android顶部(toolbar)搜索框实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01

最新评论