¿Cómo puedo agregar un contacto mediante programación?

Estoy intentando agregar un contacto de forma programática en Android. Aquí está mi código:

ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); int rawContactInsertIndex = ops.size(); ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI) .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE,"Google") .withValue(ContactsContract.RawContacts.ACCOUNT_NAME,"[email protected]") .build()); ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) .withValueBackReference(Data.RAW_CONTACT_ID,rawContactInsertIndex) .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, rawContactInsertIndex) .withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE) .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, phone) .withValue(ContactsContract.CommonDataKinds.Phone.TYPE, phoneType) .build()); ops.add(ContentProviderOperation.newInsert(ContactsContract .Data.CONTENT_URI) .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID,rawContactInsertIndex) .withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE) .withValue(ContactsContract.CommonDataKinds.Email.DATA, email) .withValue(ContactsContract.CommonDataKinds.Email.TYPE, emailType) .build()); try { getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops); Context ctx = getApplicationContext(); CharSequence txt = "Contact " + name +" added successfully"; int duration = Toast.LENGTH_LONG; Toast toast = Toast.makeText(ctx, txt, duration); toast.show(); } catch (Exception e) { Toast.makeText(getApplicationContext(),"error",Toast.LENGTH_LONG).show(); } 

¿Estoy haciendo esto correctamente? ¿Cómo puedo agregar un nombre de cuenta y un tipo de cuenta?

NOTA: No tengo ninguna cuenta creada. ¿Es obligatorio tener una cuenta para agregar un contacto?

Contacto API que almacena el contacto como un contacto invisible: ¿Cómo hacerlo visible? Comprobar esto espero que sea útil!

No hay necesidad de crear ninguna cuenta en el teléfono! … Creo que es una cuenta predeterminada para hacer eso!

Revisa mi publicación acerca de cómo insertar un contacto. Espero eso ayude.

  • Emulador de Android al revés en Eclipse Juno
  • Fallo al intentar instalar APK en el emulador
  • GetAvailableBlocksLong () * getBlockSizeLong () VS getAvailableBytes ()
  • No se puede crear un emulador con Android L (API 20)
  • Introducción al emulador Open NFC
  • Poner manualmente archivos en la tarjeta SD del emulador de Android
  • Emulador de Android que se ejecuta en Windows Phone
  • Las asignaciones de preferencias compartidas de Android no persisten entre sesiones de emulador
  • Genymotion genérico desconocido error
  • ¿Cómo obtener el contenido del portapapeles en shell de adb?
  • ¿Cómo instalar Open NFC Simulator para Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.