Android——通过电话号码获得联系人图像、姓名
16lz
2021-01-23
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; }
更多相关文章
- android 增加联系人
- Android自动判定输入的是电话号码还是网址
- android联系人中英文混合排序
- android 通过ContentResolver获得联系人数据
- android打开联系人的代码
- 实现类似Android联系人搜索功能
- android获取联系人所有内容
- Android 添加删除联系人2.0之前与2.0之后