Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android没有添加所有具有重复字段的联系人_Android_Duplicates_Contacts - Fatal编程技术网

Android没有添加所有具有重复字段的联系人

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) .

在安卓2.1更新1中添加重复联系人字段时,我受到了很大的吹捧

请看一下我的代码:

      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或者别的什么。。。