gpt4 book ai didi

java - 如何在android中为联系人添加新字段

转载 作者:太空狗 更新时间:2023-10-29 15:40:47 25 4
gpt4 key购买 nike

我想为现有联系人添加新的电子邮件地址。

我使用这段代码:

    ArrayList<ContentProviderOperation> insertEmailList =
new ArrayList<ContentProviderOperation>();
Uri uri=null;
for (ContactEmail contactEmail : emails) {
values.put(ContactsContract.Data.RAW_CONTACT_ID, id);
values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE);
values.put(ContactsContract.CommonDataKinds.Email.ADDRESS, contactEmail.getEmailAddress());
values.put(ContactsContract.CommonDataKinds.Email.TYPE, ContactsContract.CommonDataKinds.Email.TYPE_CUSTOM);
uri=contentResolver.insert(android.provider.ContactsContract.Data.CONTENT_URI, values);
}

当运行此代码时,uricontent://com.android.contacts/data/2135 但我的联系人未更新。我的应用程序运行无一异常(exception)。

最佳答案

enter image description here

Image来自 Get Contact Emails By Content Provider - Android Example

        Cursor mRawContactCursor = context.getContentResolver().query(
ContactsContract.RawContacts.CONTENT_URI,
null,
ContactsContract.Data.CONTACT_ID + " = ?",
new String[] {ID},
null);
mRawContactCursor.moveToFirst();
String rawId = mRawContactCursor.getString(mRawContactCursor.getColumnIndex(ContactsContract.RawContacts._ID));

使用此代码查找 _ID 或 RAW_CONTACT_ID,然后更新或插入联系人。

        for (ContactEmail contactEmail : emails) {
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawId);
values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE);
values.put(ContactsContract.CommonDataKinds.Email.ADDRESS, "a@a.com");
values.put(ContactsContract.CommonDataKinds.Email.TYPE, type.home);
contentResolver.insert(android.provider.ContactsContract.Data.CONTENT_URI, values);
}

关于java - 如何在android中为联系人添加新字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35728406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com