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









你可能感兴趣的:(android)