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開發(fā)實現ListView點擊item改變顏色功能示例
這篇文章主要介紹了Android開發(fā)實現ListView點擊item改變顏色功能,涉及Android布局及響應事件動態(tài)變換元素屬性相關操作技巧,需要的朋友可以參考下2017-11-11
anndroid使用ViewPager實現三個fragment切換
這篇文章主要介紹了anndroid使用ViewPager實現三個fragment切換,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04
Android自定義View onDraw()方法會調用兩次的問題解決
這篇文章主要介紹了Android自定義View onDraw()方法會調用兩次的問題解決,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-01-01

