安卓根据号码获取联系人姓名和头像

来源:互联网 发布:淘宝项链店铺 编辑:程序博客网 时间:2024/04/29 06:11
import java.io.InputStream;import android.content.ContentResolver;import android.content.ContentUris;import android.content.Context;import android.database.Cursor;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.net.Uri;import android.provider.ContactsContract;import android.provider.ContactsContract.CommonDataKinds.Phone;import android.provider.ContactsContract.CommonDataKinds.Photo;import android.provider.ContactsContract.Contacts;import android.provider.ContactsContract.PhoneLookup;import android.text.TextUtils;public class ContactInfo {private Context mContext;private String number = null;private String name = null;private Bitmap head = null;public ContactInfo(Context context, String number_) {mContext = context;number = number_;searchContactInfo();}public ContactInfo setNumber(String s) {number = s;return this;}public ContactInfo setName(String s) {name = s;return this;}public ContactInfo setHead(Bitmap b) {head = b;return this;}public String getNumber() {return number;}public String getName() {return name;}public Bitmap getHead() {return head;}private void searchContactInfo() {final ContentResolver resolver = mContext.getContentResolver();Uri lookupUri = null;String[] projection = new String[] { PhoneLookup._ID,PhoneLookup.DISPLAY_NAME };Cursor cursor = null;try {lookupUri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI,Uri.encode(number));cursor = resolver.query(lookupUri, projection, null, null, null);} catch (Exception ex) {ex.printStackTrace();try {lookupUri = Uri.withAppendedPath(android.provider.Contacts.Phones.CONTENT_FILTER_URL,Uri.encode(number));cursor = resolver.query(lookupUri, projection, null, null, null);} catch (Exception e) {e.printStackTrace();}}if (cursor != null && cursor.getCount() > 0 && cursor.moveToFirst()) {name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone._ID));Cursor phone = mContext.getContentResolver().query(Phone.CONTENT_URI, null,Phone.CONTACT_ID + "=" + contactId, null, null);if (phone != null && phone.getCount() > 0 && phone.moveToNext()) {head = getContactPhoto(phone);phone.close();}cursor.close();}if (name == null || name.equals("")) {name = "未知来电";}if (head == null)head = BitmapFactory.decodeResource(mContext.getResources(),R.drawable.picture_unknown);}private Bitmap getContactPhoto(Cursor phone) {String photoid = phone.getString(phone.getColumnIndex(Phone.PHOTO_ID));if (photoid != null) {Cursor c = mContext.getContentResolver().query(ContactsContract.Data.CONTENT_URI,new String[] { ContactsContract.Data.DATA15 },ContactsContract.Data._ID + "=" + photoid, null, null);c.moveToFirst();byte[] ss = c.getBlob(0);if (ss != null) {Bitmap map = BitmapFactory.decodeByteArray(ss, 0, ss.length);c.close();return map;}c.close();return null;}return null;}}
0 1
原创粉丝点击