Android——通过电话号码获得联系人图像、姓名

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;  
     }  









  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值