2011-03-02 105 views
2

我可以更新下面的語句一個谷歌的接觸(家)電子郵件:更新聯繫人的電子郵件地址

String select = ContactsContract.Data.CONTACT_ID + "=? AND " + ContactsContract.Data.MIMETYPE + "='" + 
    ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE + "'" + " AND " + ContactsContract.CommonDataKinds.Email.TYPE + "=?";  
    String[] args = new String[]{m_sID, String.valueOf(ContactsContract.CommonDataKinds.Email.TYPE_HOME)};  
    m_ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)    
      .withSelection(select, args)    
      .withValue(ContactsContract.CommonDataKinds.Email.DATA, "[email protected]")    
      .build());  

但我怎麼可以更新通訊錄中的聯繫人不同的電子郵件地址?

感謝

回答

0

已應用是與類型的家庭電子郵件的唯一電子郵件過濾器條件。 ContactsContract.CommonDataKinds.Email.TYPE_HOME需要刪除 即不應用過濾器「AND」+ ContactsContract.CommonDataKinds.Email.TYPE +「=?」

2

使用TYPE_WORK,TYPE_OTHER或TYPE_MOBILE而不是TYPE_HOME,具體取決於您要更新哪一個。 您還可以使用TYPE_CUSTOM,但你應該添加

+ " AND " + ContactsContract.CommonDataKinds.Email.LABEL + "=?" 

你的選擇和所需的標籤,以您的ARGS。

+0

感謝Martin,它是LABEL正在尋找的。但是我的願望永遠是空的。有任何想法嗎? – 2011-03-06 09:44:11

+0

IIRC,標籤僅爲TYPE_CUSTOM設置。對於其他TYPE_XXX,它始終爲空。 – Martin 2011-04-16 12:48:19

相關問題