** I tried this code. It works without errors. But after the createContact method, I opened the android contacts application. The contact I added using createContact does not exist. When I press the contacts of the display, it is displayed.
What is the problem, actually? **
If you have another code, please send it ...
import java.util.ArrayList; import android.app.Activity; import android.content.ContentProviderOperation; import android.content.ContentResolver; import android.content.OperationApplicationException; import android.database.Cursor; import android.os.Bundle; import android.os.RemoteException; import android.provider.ContactsContract; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class NativeContentProvider extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.nativecontentprovider); Button view = (Button)findViewById(R.id.viewButton); Button add = (Button)findViewById(R.id.createButton); Button modify = (Button)findViewById(R.id.updateButton); Button delete = (Button)findViewById(R.id.deleteButton); view.setOnClickListener(new OnClickListener() { public void onClick(View v){ displayContacts(); Log.i("NativeContentProvider", "Completed Displaying Contact list"); } }); add.setOnClickListener(new OnClickListener() { public void onClick(View v){ createContact("Mangesh Joshi", "123456789"); Log.i("NativeContentProvider", "Created a new contact, of course hard-coded"); } }); modify.setOnClickListener(new OnClickListener() { public void onClick(View v) { updateContact("Sample Name", "987654321"); Log.i("NativeContentProvider", "Completed updating the email id, if applicable"); } }); delete.setOnClickListener(new OnClickListener() { public void onClick(View v) { deleteContact("Sample Name"); Log.i("NativeContentProvider", "Deleted the just created contact"); } }); } private void displayContacts() { ContentResolver cr = getContentResolver(); Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); if (cur.getCount() > 0) { while (cur.moveToNext()) { String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID)); String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); if (Integer.parseInt(cur.getString( cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) { Cursor pCur = cr.query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?", new String[]{id}, null); while (pCur.moveToNext()) { String phoneNo = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); Toast.makeText(NativeContentProvider.this, "Name: " + name + ", Phone No: " + phoneNo, Toast.LENGTH_SHORT).show(); } pCur.close(); } } } } 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.Contacts.CONTENT_URI) .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, " accountname@gmail.com ") .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, "com.google") .build()); ops.add(ContentProviderOperation.newInsert(ContactsContract.Contacts.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.Contacts.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) {