在日常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程序设计有所帮助。
如对本文有疑问, 点击进行留言回复!!
Xamarin 安卓 相机 各种坑 目标API Android 6以后,我选的目标API版本是 Android 10
Android 9.0+软件某些功能突然暴毙:cleartext not permitted
Android : Resource is not a Drawable (color or path)
Flutter问题集锦——Android Studio 4.0.1 在AVD Manger中启动模拟器报“unable to locate abd”
网友评论