android - 插入具有特定 contactid 的 RawContact

标签 android contacts android-contacts contactscontract rawcontacts

我正在尝试在 android 中创建一个具有特定联系人 ID 的 rawcontact,因此它链接到具有相同 contactid(不是 rawcontactid)的其他 rawcontact。

问题是我无法将 Contact_ID 插入到 ContentProviderOpertations 中。 使用以下代码返回“插入失败”

    ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
    int id = (int) contactId;

    String condition = Data.RAW_CONTACT_ID + "=?";
    String[] parameters = { "" + id };

    try {

        String accountName = account.name;
        String accountType = account.type;
        ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
                .withValue(RawContacts.ACCOUNT_TYPE, accountType)
                .withValue(RawContacts.ACCOUNT_NAME, accountName).build());
        ops.add(getAccountGroupOperation(account));

        ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
                .withValueBackReference(Data.RAW_CONTACT_ID, 0)
                .withValue(Data.CONTACT_ID, "" + id)
                .withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
                .withValue(StructuredName.DISPLAY_NAME, contact.getName())
                .build()); 
        MyApplication.getAppContext().getContentResolver()
                .applyBatch(ContactsContract.AUTHORITY, ops);
    } catch (Exception e) {
        ...
    }

我做错了什么?

最佳答案

可以这样做,但不是以您想要的方式。您可以通过将类型设置为 TYPE_KEEP_TOGETHER 将两个原始联系人 ID 添加到 AggregationExceptions 表,使联系人应用程序加入两个原始联系人

http://developer.android.com/reference/android/provider/ContactsContract.AggregationExceptions.html

关于android - 插入具有特定 contactid 的 RawContact,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8741788/

相关文章:

css - 联系表格 WP 插件不显示提交按钮

java - 要求用户选择一个联系人,然后能够在以后查找该联系人的信息?

android - 获取属于特定组的联系人列表

Android TextInputLayout和TextInputEditText光标颜色问题

android - Android中存储音频文件的目录

html - WP contact form 7 "textarea"看起来和其他字段不一样

android - 在多选 ListView 中选择一个项目会选择多个项目

java - 为每 5 个项目在 recyclerview 中添加广告?

java - 如何在 RecyclerView 中的几个项目之后添加一个单独的分隔线来分隔一个组?

c# - 如何以编程方式从 Windows 联系人中检索所有联系人的详细信息?