private void createContact(String name, String phone) {
    ContentResolver cr = getContentResolver();
   
    Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,
                null, null, null, null);
        
    if (cur.getCount() > 0) {
        while (cur.moveToNext()) {
        String existName = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
        if (existName.contains(name)) {
                Toast.makeText(NativeContentProvider.this,"The contact name: " + name + " already exists", Toast.LENGTH_SHORT).show();
                return;        
        }
        }
    }
   
        ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
        ops.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
                .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, "accountname@gmail.com")
                .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, "com.google")
                .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, 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, phone)
                .withValue(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_HOME)
                .build());

        try {
cr.applyBatch(ContactsContract.AUTHORITY, ops);
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (OperationApplicationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

    Toast.makeText(NativeContentProvider.this, "Created a new contact with name: " + name + " and Phone No: " + phone, Toast.LENGTH_SHORT).show();
   
    }


샘플소스 다운받아서 실행한 소스입니다.

현재 사용하고 있는 테스트용 기기에 등록된 주소록은 하나도 없는 상태구요.

저 소스를 돌리게 되면 

if (cur.getCount() > 0) { 이 부분을 타면 안되는것 같은데.
계속 이 부분을 타고 이미 등록된 이름이있다는 메시지를 뱉어냅니다.

저 소스를 보면 현재 등록되어있는 전체 주소록의 내용을 가지고와서 같은 이름이있는지 하나하나 비교 하는거 같은데요

제가 생각한게 맞는지?

맞다면 어떠한 이유 때문에 계속 중복된 이름이있다고 나오는건지? 조언좀 부탁드리겠습니다.

아.. 호출하는 부분입니다.

add.setOnClickListener(new OnClickListener() {
              public void onClick(View v){
            createContact("Sample Name", "123456789");
            Log.i("NativeContentProvider", "Created a new contact, of course hard-coded");
            }
            });