2010-07-12 4 views
3

Android 2.1의 연락처 데이터베이스에 새 연락처를 쓰려고합니다. 내가 매니페스트에서 다음 필드를 추가 한연락처 데이터베이스에 연락처 쓰기 - Android 2.1

java.lang.UnsupportedOperationException: Aggregate contacts are created automatically. 

:하지만 다음과 같은 오류를 얻고 것은

ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); 

String accountType = null; 
String accountName = null; 

Builder builder = ContentProviderOperation.newInsert(
ContactsContract.Contacts.CONTENT_URI); 
builder.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, accountType); 
builder.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, accountName); 

ContentProviderOperation op = builder.build(); 
Log.i("contacts", "op.getUri(): " + op.getUri()); 
ops.add(op); 

ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) 
    .withValueBackReference(
     ContactsContract.Data.RAW_CONTACT_ID, 
     ops.size() 
    ) 
    .withValue(
     ContactsContract.Data.MIMETYPE, 
     StructuredName.CONTENT_ITEM_TYPE 
    ) 
    .withValue(StructuredName.DISPLAY_NAME, contact.getFullName()) 
    .build() 
); 

ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) 
    .withValueBackReference(
     ContactsContract.Data.RAW_CONTACT_ID, 
     ops.size() 
    ) 
    .withValue(
     ContactsContract.Data.MIMETYPE, 
     ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE 
    ) 
    .withValue(
     ContactsContract.CommonDataKinds.Phone.NUMBER, 
     contact.getPhoneNumber() 
    ) 
    .build() 
); 

try { 
    this.cr.applyBatch(ContactsContract.AUTHORITY, ops); 
} 

답변

2
ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI).withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, rowContactInsertIndex).withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE).withValue(Phone.NUMBER, cPhone).withValue(Phone.TYPE, cPhoneType).build()); 

이 도움이 될 :

<uses-permission android:name="android.permission.READ_CONTACTS" /> 
<uses-permission android:name="android.permission.WRITE_CONTACTS" /> 

이 내 코드입니다 당신. 성명, 전화 번호 및 이메일 주소도 동일하게 처리하십시오