0

To add contacts(number,name) I am following this link. I am running a while loop to insert two contacts. When I see contacts in my device First contact is added correctly but second contact's number is adding to first contact i.e. first contact has two numbers. And an new contact is also created without any name,it's showing contact like (Noname).

while(keys.hasNext()){
                i++;
                String name =(String)keys.next();
                debug=debug+name+jObject.getString(name);
                //numbers[i]=(String)jObject.get(names[i]);                                     
                 ops.add(ContentProviderOperation.newInsert(
                         ContactsContract.RawContacts.CONTENT_URI)
                             .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)
                             .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null)
                             .build());
                    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,
                             "added"+i+name).build());
                     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, jObject.getString(name))
                                 .withValue(ContactsContract.CommonDataKinds.Phone.TYPE,
                             ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE)
                                 .build());
                     try {
                         context.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
                     } catch (Exception e) {
                         e.printStackTrace();
                        Toast.makeText(context, "Exception: " + e.getMessage(), Toast.LENGTH_SHORT).show();
                     } 
                     //i++;
                    //Thread.sleep(1000);
            }
Community
  • 1
  • 1
Prashanth Debbadwar
  • 1,047
  • 18
  • 33

1 Answers1

0

Problem is solved by clearing ArrayList whenever a contact addition is completed.

Prashanth Debbadwar
  • 1,047
  • 18
  • 33