我使用以下代码将2次相同的联系人插入Android模拟器(2.3.3):
ArrayList<ContentProvIDerOperation> ops = new ArrayList<ContentProvIDerOperation>();ops.add(ContentProvIDerOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI) .withValue(RawContacts.AGGREGATION_MODE, RawContacts.AGGREGATION_MODE_DEFAulT) .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null) .withValue(ContactsContract.RawContacts.ACCOUNT_name, null).build());// structurednameops.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, "Test") .withValue(ContactsContract.CommonDataKinds.Structuredname.FAMILY_name, "Tester") .withValue(ContactsContract.CommonDataKinds.Structuredname.GIVEN_name, "Test") .build());// PHONEops.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.TYPE, "0") .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, "12345678").build());try { getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);} catch (remoteexception e) { e.printstacktrace();} catch (OperationApplicationException e) { e.printstacktrace();}
根据我的理解,AndroID通常应该自动聚合联系人,使我的2个插入一个条目.然而,这不会发生,我可以在拨号器应用程序中看到2个具有相同数据的联系人.
有任何想法吗?
解决方法:
聚合仅适用于来自不同帐户的插入联系人.如果您从同一帐户插入两个原始联系人,则不会对其进行汇总.
总结以上是内存溢出为你收集整理的android – 插入新联系人时自动联系人聚合无效全部内容,希望文章能够帮你解决android – 插入新联系人时自动联系人聚合无效所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)