android– 如何在创建新联系人时设置RAW_CONTACT_ID

android– 如何在创建新联系人时设置RAW_CONTACT_ID,第1张

概述当我想创建一个新的联系人时,我想我必须设置一个RAW_CONTACT_ID.如果不是这些代码如何表现良好.我对吗?如果不是,它是如何知道这些数据属于同一个联系人的.如果是,如何设置RAW_CONTACT_ID?也许问题可以这样说:我怎样才能获得不存在的新RAW_CONTACT_ID?然后发布我的代码(我将0设置为RAW_

当我想创建一个新的联系人时,我想我必须设置一个RAW_CONTACT_ID.如果不是这些代码如何表现良好.我对吗?如果不是,它是如何知道这些数据属于同一个联系人的.如果是,如何设置RAW_CONTACT_ID?也许问题可以这样说:我怎样才能获得不存在的新RAW_CONTACT_ID?然后发布我的代码(我将0设置为RAW_CONTACT_ID):

    ArrayList<ContentProvIDerOperation> ops = new ArrayList<ContentProvIDerOperation>();    ops.add(ContentProvIDerOperation            .newInsert(ContactsContract.RawContacts.CONTENT_URI)            .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)            .withValue(ContactsContract.RawContacts.ACCOUNT_name, null)            .build());    // ------------------------------------------------------ names    if (displayname != null) {        ops.add(ContentProvIDerOperation                .newInsert(ContactsContract.Data.CONTENT_URI)                .withValueBackReference(                        ContactsContract.Data.RAW_CONTACT_ID, 0)                .withValue(                        ContactsContract.Data.MIMETYPE,                        ContactsContract.CommonDataKinds.Structuredname.CONTENT_ITEM_TYPE)                .withValue(                        ContactsContract.CommonDataKinds.Structuredname.disPLAY_name,                        displayname).build());    }    // ------------------------------------------------------ Mobile Number    if (mobileNumber != null) {        ops.add(ContentProvIDerOperation                .newInsert(ContactsContract.Data.CONTENT_URI)                .withValueBackReference(                        ContactsContract.Data.RAW_CONTACT_ID, 0)                .withValue(                        ContactsContract.Data.MIMETYPE,                        ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)                .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER,                        mobileNumber)                .withValue(ContactsContract.CommonDataKinds.Phone.TYPE,                        ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE)                .build());    }    context.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);

解决方法:

您必须使用int rawContactInsertIndex = ops.size(),如下所示.

ArrayList<ContentProvIDerOperation> ops = new ArrayList<ContentProvIDerOperation>();        int rawContactInsertIndex = ops.size();        ops.add(ContentProvIDerOperation.newInsert(RawContacts.CONTENT_URI).withValue(RawContacts.ACCOUNT_TYPE, null).withValue(RawContacts.ACCOUNT_name, null).build());        ops.add(ContentProvIDerOperation.newInsert(Data.CONTENT_URI).withValueBackReference(Data.RAW_CONTACT_ID, rawContactInsertIndex).withValue(Data.MIMETYPE, Structuredname.CONTENT_ITEM_TYPE)                .withValue(Structuredname.disPLAY_name, personalVcard.getFirstname()).build());
总结

以上是内存溢出为你收集整理的android – 如何在创建新联系人时设置RAW_CONTACT_ID全部内容,希望文章能够帮你解决android – 如何在创建新联系人时设置RAW_CONTACT_ID所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1117737.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存