更新联系人的电子邮件地址
问题描述:
我可以更新下面的语句一个谷歌的接触(家)电子邮件:更新联系人的电子邮件地址
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());
但我怎么可以更新通讯录中的联系人不同的电子邮件地址?
感谢
答
已应用是与类型的家庭电子邮件的唯一电子邮件过滤器条件。 ContactsContract.CommonDataKinds.Email.TYPE_HOME需要删除 即不应用过滤器“AND”+ ContactsContract.CommonDataKinds.Email.TYPE +“=?”
答
使用TYPE_WORK,TYPE_OTHER或TYPE_MOBILE而不是TYPE_HOME,具体取决于您要更新哪一个。 您还可以使用TYPE_CUSTOM,但你应该添加
+ " AND " + ContactsContract.CommonDataKinds.Email.LABEL + "=?"
你的选择和所需的标签,以您的ARGS。
感谢Martin,它是LABEL正在寻找的。但是我的愿望永远是空的。有任何想法吗? – 2011-03-06 09:44:11
IIRC,标签仅为TYPE_CUSTOM设置。对于其他TYPE_XXX,它始终为空。 – Martin 2011-04-16 12:48:19