当我想创建一个新的联系人时,我想我必须设置一个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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)