1. 通过电话号码获取联系人图像
private Bitmap getContactImageByPhoneNumber (Context context,String strPhoneNumber, String contactID){
String[] projection = { ContactsContract.Contacts.PHOTO_THUMBNAIL_URI, ContactsContract.CommonDataKinds.Phone.NUMBER };
Cursor cursor = context.getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI, projection, ContactsContract.CommonDataKinds.Phone.NUMBER + " = '" + strPhoneNumber + "'", null,null);
if (cursor == null) {
return null;
}
Bitmap bm = null;
String mThumbnailUri = null;
for (int i = 0; i < cursor.getCount(); i++) {
cursor.moveToPosition(i);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
try {
int mThumbnailColumn = cursor.getColumnIndexOrThrow(ContactsContract.Contacts.PHOTO_THUMBNAIL_URI);
mThumbnailUri = cursor.getString(mThumbnailColumn);
} catch (IllegalArgumentException e) {
e.printStackTrace();
}
} else {
mThumbnailUri = contactID;
}
if (mThumbnailUri != null) {
InputStream is = null;
Uri thumbUri;
if (Version.sdkAboveOrEqual(Version.API11_HONEYCOMB_30)) {
thumbUri = Uri.parse(mThumbnailUri);
} else {
final Uri contactUri = Uri.withAppendedPath(
Contacts.CONTENT_URI, mThumbnailUri);
thumbUri = Uri.withAppendedPath(contactUri, Contacts.Photo.CONTENT_DIRECTORY);
}
try {
is = mContext.getContentResolver().openInputStream(thumbUri);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
if (is != null) {
bm=BitmapFactory.decodeStream(is);
}
}
}
return bm ;
}
2. 通过电话号码获得联系人姓名
public String getContactNameByPhoneNumber(Context context, String number) {
String[] projection = { ContactsContract.PhoneLookup.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Phone.NUMBER };
Cursor cursor = context.getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI, projection, ContactsContract.CommonDataKinds.Phone.NUMBER + " = '" + number + "'", null,null);
if (cursor == null) {
return null;
}
for (int i = 0; i < cursor.getCount(); i++) {
cursor.moveToPosition(i);
int nameFieldColumnIndex = cursor
.getColumnIndex(ContactsContract.PhoneLookup.DISPLAY_NAME);
String name = cursor.getString(nameFieldColumnIndex);
int contactid=cursor.getColumnIndex(ContactsContract.Contacts._ID);
return name;
}
return null;
}