2015-03-08 2 views
0

Вероятно, ответ тривиален, но я не могу понять это. Я пытаюсь добавить контакты с частью кода ниже, но в списке контактов существует только «contact_0». Вы знаете, что не так с этим кодом?Добавление нескольких контактов на Android

public void myMethod(){ 

    for (int i = 0; i < 5; i++) { 
     ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); 
     ops.add(ContentProviderOperation 
       .newInsert(ContactsContract.RawContacts.CONTENT_URI) 
       .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, 
         null) 
       .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, 
         null) 
       .withValue(ContactsContract.RawContacts.AGGREGATION_MODE, 
         ContactsContract.RawContacts.AGGREGATION_MODE_DISABLED).build()); 

     // ------------------------------------------------------ Name 

     ops.add(ContentProviderOperation 
       .newInsert(ContactsContract.Data.CONTENT_URI) 
       .withValueBackReference(
         ContactsContract.Data.RAW_CONTACT_ID, i) 
       .withValue(
         ContactsContract.Data.MIMETYPE, 
         ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE) 
       .withValue(
         ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, 
         "contact_"+i).build()); 

     // ------------------------------------------------------ Work 
     // Number 

     ops.add(ContentProviderOperation 
       .newInsert(ContactsContract.Data.CONTENT_URI) 
       .withValueBackReference(
         ContactsContract.Data.RAW_CONTACT_ID, i) 
       .withValue(
         ContactsContract.Data.MIMETYPE, 
         ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE) 
       .withValue(
         ContactsContract.CommonDataKinds.Phone.NUMBER, 
         "01 62384") 
       .withValue(
         ContactsContract.CommonDataKinds.Phone.TYPE, 
         ContactsContract.CommonDataKinds.Phone.TYPE_WORK) 
       .build()); 



     try { 
      getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

Любые идеи парней?

Заранее спасибо за любую помощь

ответ

0
public void myMethod(){ 

    for (int i = 0; i < 5; i++) { 
     ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); 
     ops.add(ContentProviderOperation 
       .newInsert(ContactsContract.RawContacts.CONTENT_URI) 
       .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, 
         null) 
       .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, 
         null) 
       .withValue(ContactsContract.RawContacts.AGGREGATION_MODE, 
         ContactsContract.RawContacts.AGGREGATION_MODE_DISABLED).build()); 

     // ------------------------------------------------------ Name 

     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, 
         "contact_"+i).build()); 

     // ------------------------------------------------------ Work 
     // Number 

     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, 
         "01 62384") 
       .withValue(
         ContactsContract.CommonDataKinds.Phone.TYPE, 
         ContactsContract.CommonDataKinds.Phone.TYPE_WORK) 
       .build()); 



     try { 
      getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

используйте RAW_CONTACT_ID 0 в каждой операции вставки. Это работает для меня.

Смежные вопросы