Android根据电话号码获得联系人头像实例代码
作者:shichen2014 发布时间:2022-01-07 04:08:10
标签: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程序设计有所帮助。


猜你喜欢
- makeCertPic.javapackage pic;import java.awt.Color;import java.awt.Font
- unity场景加载分为同步加载和异步加载,供大家参考,具体内容如下同步加载 loadScene首先将前置工作做好。创建一个项目工程,然后创建
- 3.3 do...while()循环3.3.1 do语句的语法:do
- springboot整合mybatis项目博客系统文章,相册,评论,标签,等表IDEA为最新版2021.3.3,mysql数据库为最新版Na
- 本文实例讲述了Java实现把两个数组合并为一个的方法。分享给大家供大家参考,具体如下:在Java中,如何把两个String[]合并为一个?看
- 1.什么是单例模式?所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对
- Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。
- 目录1. 前言2. 栈帧3. 分析4. 总结1. 前言在刚开始学习Java的时候,大家肯定都接触过this关键字,尤其是在构造函数赋值的时候
- 本文实例讲述了Android自定义ActionBar的实现方法。分享给大家供大家参考。具体实现方法如下:Android 3.0及以上已经有了
- 本文讲述了Android使用国内镜像在线更新SDK的方法。分享给大家供大家参考,具体如下:什么是Android SDK:SDK:(softw
- Swing包的介绍Java基础类数据库(Java Foundation Class)给java应用程序增加了图形界面、丰富的功能性以及与用户
- 【开发环境】物理机版本:Win7旗舰版(64位)Android Studio版本:2.1正式版【Android Studio的优势】•基于G
- springboot项目启动,初始化方法加载参数今天我看到项目中用到了 @PostConstruct 这个注解,之前没看到过,特地查了一下,
- 方法一:Handler+Threadpackage com.xunfang.handerDemo; import android.app.A
- 前言本文主要给大家介绍的是关于Java对xls文件进行读写操作的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍:wi
- 使用版本:spring-boot: 2.1.6.RELEASEsping: 5.1.8.RELEASEjava: openjdk 11.0.
- 懒加载---就是我们在spring容器启动的是先不把所有的bean都加载到spring的容器中去,而是在当需要用的时候,才把这个对象实例化到
- 前言:先写个简单的地点签到功能,如果日后有时间细写的话,会更加好好研究一下百度地图api,做更多逻辑判断。这里主要是调用百度地图中的场景定位
- java身份证合法性校验并获取身份证号有效信息,供大家参考,具体内容如下java身份证合法性校验/**身份证前6位【ABCDEF】为行政区划
- 单例模式应该是设计模式中比较简单的一个,也是非常常见的,但是在多线程并发的环境下使用却是不那么简单了,今天给大家分享一个我在开发过程中遇到的