添加多个联系人

时间:2015-03-09 09:35:46

标签: android contacts

要添加联系人(号码,姓名),我将关注此link。我正在运行while循环来插入两个联系人。当我在设备中看到联系人时,第一次联系人被正确添加,但第二次联系人的号码正在添加到第一次联系人,即第一次联系人有两个号码。并且还创建了一个没有任何名称的新联系人,它显示了联系方式(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);
            }

1 个答案:

答案 0 :(得分:0)

无论何时完成联系人添加,都可以通过清除ArrayList来解决问题。