2014-03-31 92 views
1

如果我有電子郵件ID,並且需要從地址簿中獲取相應的姓名,是否可以這樣做?從給定電子郵件地址的地址簿中獲取聯繫人姓名

+0

我想使用與電子郵件ID一個HashMap的關鍵和聯繫人的姓名和值的線,然後用哈希鍵匹配指定的電子郵件ID和獲取相應的聯繫人姓名。 – user3217900

+0

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

回答

1

取使用特定URI

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

電子郵件比賽,其中emailIdString是要獲取聯繫人的電子郵件地址基於EMAILID接觸。

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

contactLookup cursor將具有其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; 
} 
相關問題