2014-03-31 7 views
1

이메일 ID가 있고 주소록에서 해당 이름을 가져와야하는 경우 가능합니까?주어진 주소 이메일 주소

+0

는 다음 해시 키를 사용하여 주어진 이메일 ID와 일치하고 해당 연락처 이름을 얻습니다. – user3217900

+0

https://developer.android.com/training/contacts-provider/retrieve-names.html –

답변

1

는 emailIdString 당신이 연락처를 가져 오기하고자하는 이메일 주소입니다

Uri uri = Uri.withAppendedPath(ContactsContract.CommonDataKinds.Email.CONTENT_FILTER_URI, Uri.encode(emailIdString)); 

URI

특정 전자 메일 일치를 사용하여 EMAILID에 따라 연락처를 가져옵니다.

Cursor contactLookup = cr.query(uri, new String[] {ContactsContract.CommonDataKinds.Email.CONTACT_ID, ContactsContract.Data.DISPLAY_NAME }, null, null, null); 

contactLookup 커서에는 emailID가 emailIdString과 일치하는 모든 연락처가 있습니다.

0

수도 당신을 위해이 일 :

public String getCallerFromEmailId(String emailId) { 
    // TODO Auto-generated method stub 
    String callerName = null; 
    ContentResolver resolver = context.getContentResolver(); 
    Cursor cursor = resolver.query(ContactsContract.Contacts.CONTENT_URI, 
      null, null, null, null); 

    if (cursor.getCount() > 0) { 
     while (cursor.moveToNext()) { 

      Cursor pcursor = resolver.query(
        ContactsContract.CommonDataKinds.Email.CONTENT_URI, 
        null, ContactsContract.CommonDataKinds.Email.DATA 
          + " = ?", new String[] { emailId }, null); 

      while (pcursor.moveToNext()) { 
       callerName = pcursor 
         .getString(pcursor 
           .getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); 
       return callerName; 
      } 
      pcursor.close(); 

     } 
    } 
    cursor.close(); 
    return callerName; 
} 
내가 값으로 키와 접촉 이름으로 이메일 ID와의 HashMap을 사용하는 라인에 생각