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

作者:shichen2014 时间:2022-01-07 04:08:10 

在日常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,电话,号码,联系人,头像
0
投稿

猜你喜欢

  • 解析android中的dip,dp,px,sp和屏幕密度

    2023-09-26 20:44:38
  • C++实现图书管理系统

    2023-11-03 03:00:35
  • Java常用HASH算法总结【经典实例】

    2023-04-26 00:34:55
  • Java线程之守护线程(Daemon)用法实例

    2023-11-29 09:15:13
  • java项目构建Gradle的使用教程

    2023-06-07 19:17:41
  • spring中的注解事务演示和添加步骤详情

    2023-03-03 08:32:48
  • 解读java try catch 异常后还会继续执行吗

    2022-05-11 01:25:24
  • SpringMVC使用RESTful接口案例

    2021-10-10 20:03:45
  • SpringMVC源码解读之 HandlerMapping - AbstractDetectingUrlHandlerMapping系列初始化

    2023-02-12 16:14:21
  • 如何利用Java输出链表中倒数第k个结点

    2022-11-29 10:13:28
  • Java使用arthas修改日志级别详解

    2023-02-04 23:09:26
  • Java实战员工绩效管理系统的实现流程

    2021-11-20 19:04:28
  • java文件操作之java写文件简单示例

    2023-10-21 14:37:13
  • Java导出Execl疑难点处理的实现

    2021-09-18 12:55:11
  • springboot项目打成war包部署到tomcat遇到的一些问题

    2023-10-12 12:46:46
  • Java中BigDecimal类的使用详解

    2021-12-13 05:30:52
  • SpringBoot文件上传控制及Java 获取和判断文件头信息

    2021-12-10 16:47:20
  • java中Unsafe的使用讲解

    2022-08-02 08:08:18
  • Java实战之实现在线小说阅读系统

    2022-10-09 18:15:09
  • Android实现多点触控功能

    2021-10-18 08:39:33
  • asp之家 软件编程 m.aspxhome.com