2011-03-02 104 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

相关问题