Android没有添加所有具有重复字段的联系人
在安卓2.1更新1中添加重复联系人字段时,我受到了很大的吹捧 请看一下我的代码:Android没有添加所有具有重复字段的联系人,android,duplicates,contacts,Android,Duplicates,Contacts,在安卓2.1更新1中添加重复联系人字段时,我受到了很大的吹捧 请看一下我的代码: ArrayList<ContentProviderOperation> op_list = new ArrayList<ContentProviderOperation>(); op_list.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI) .
ArrayList<ContentProviderOperation> op_list = new ArrayList<ContentProviderOperation>();
op_list.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null)
.build());
// first and last names
op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID, 0)
.withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
.withValue(StructuredName.GIVEN_NAME, "MyFirstName")
.withValue(StructuredName.FAMILY_NAME, "MyLastName")
.build());
try{
ContentProviderResult[] results = cResolver.applyBatch(ContactsContract.AUTHORITY, op_list);
}catch(Exception e){
e.printStackTrace();
}
尝试在20次迭代循环中运行这段代码,然后转到contacts应用程序
您将看到只有8个联系人挂在那里!!
当我插入重复的电子邮件、电话或组织时,也会出现此问题。
在0->200的循环中尝试,android会发疯的
我的代码有问题吗?有什么解决办法吗
任何帮助都将不胜感激。。。
谢谢 你应该尝试使用ContentResolver直接插入,也许这会有帮助,我还没有尝试插入20次相同的联系人,所以我不知道在两天不睡觉后是否会有任何不同。。。重新阅读我的代码并重写我的类 我找到了解决方案:有一个我不知道的列,它甚至不存在于早期的API中,名为:AGGREGATION\u MODE 所以解决方案是这样的:
ArrayList<ContentProviderOperation> op_list = new ArrayList<ContentProviderOperation>();
op_list.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null)
.withValue(RawContacts.AGGREGATION_MODE, RawContacts.AGGREGATION_MODE_DISABLED)
.build());
// first and last names
op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID, 0)
.withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
.withValue(StructuredName.GIVEN_NAME, "MyFirstName")
.withValue(StructuredName.FAMILY_NAME, "MyLastName")
.build());
try{
ContentProviderResult[] results = cResolver.applyBatch(ContactsContract.AUTHORITY, op_list);
}catch(Exception e){
e.printStackTrace();
}
联系人合并到新的api sdk>2.0中 属于特定规则集的所有联系人将自动合并,以在联系人列表中显示单个联系人 这套规则包括 1.姓名相同的联系人。 2.具有相同邮件ID的联系人。 3.姓名和电话号码匹配的联系人…等 在显示联系人详细信息屏幕中,副本不可见。 如果您尝试编辑联系人,您将找到您输入的联系人的所有实例。i、 e如果一个联系人被输入了10次,那么10个不同的实例一个接一个可见。您可以在此处编辑任何特定联系人
由于Android 2.0支持多个帐户,这种情况将存在。奇怪。。。解释一下:当你尝试20秒,得到8秒时,如果你再次运行应用程序,你是否可以再次添加一些记录?是的,我可以。。。如果我添加10个不同的新联系人,所有联系人都会被添加。。。但如果我尝试添加更多副本,就会添加少量副本:S!好吧,下次可以再添加一些,所以听起来contacts api不能一次插入那么多记录。您可以尝试在一个循环中添加20条不同的记录来测试它,这将显示问题是与同一个联系人还是与多个联系人相关。但是到目前为止,它看起来像第二个,所以你可以一次添加5-10个部分:顺便说一句,contacts API在2.0中是不同的,只是想让你知道,如果你不知道的话,当然,它是与contacts一起的。是的,我当然知道API的不同,上个月一直在做这个工作,呵呵。。。嗯,我之前尝试过添加不同的联系人720个不同的联系人,其中包括各个领域的组织、电话,甚至还有一些有照片,他们都添加成功了你是我的英雄!!!。Android上另一个非常糟糕的文档的经典例子。。。哈!再次感谢你,你救了我一天,伙计!聚合\模式\禁用对我不起作用,我仍然可以使用此值聚合rawContacts。这似乎是安卓系统中的一个bug或者别的什么。。。