Insert contact in Android with ContactsContract

后端 未结 4 835
太阳男子
太阳男子 2020-12-08 11:33

I am trying to add a new contact to the Android 2.2 contacts directly.

//this code doesn\'t work    
ContentValues cv=new ContentValues();
c         


        
相关标签:
4条回答
  • 2020-12-08 12:26
    ContentValues cv = new ContentValues();
    cv.put(People.NAME, e1.getText().toString());
    
    // e1.getText().tostring() is Contact name 
    
    Uri u =    getContentResolver().insert(People.CONTENT_URI, cv);
    
    Uri pathu = Uri.withAppendedPath(u, People.Phones.CONTENT_DIRECTORY);    
    
    cv.clear();
    
    cv.put(People.NUMBER, e2.getText().toString());
    
    // e2.getText().tostring() is Contact number
    
    getContentResolver().insert(pathu, cv);
    
    Toast.makeText(getApplicationContext(), "Contact Added",Toast.LENGTH_LONG).show();
    
    0 讨论(0)
  • 2020-12-08 12:27
        ContentValues p=new ContentValues();
        p.put(RawContacts.ACCOUNT_TYPE, "com.google");
        p.put(RawContacts.ACCOUNT_NAME, "email");
        Uri rowcontect= getContentResolver().insert(RawContacts.CONTENT_URI, p);
        long rawcontectid=ContentUris.parseId(rowcontect);
    
        ContentValues value = new ContentValues();
        value.put(Data.RAW_CONTACT_ID,rawcontectid);
        value.put(android.provider.ContactsContract.Data.MIMETYPE,StructuredName.CONTENT_ITEM_TYPE);
        value.put(StructuredName.DISPLAY_NAME, "kunja gajjar");
        getContentResolver().insert(android.provider.ContactsContract.Data.CONTENT_URI, value);
    
        //adding the contents to the data
        ContentValues ppv=new ContentValues();
        ppv.put(android.provider.ContactsContract.Data.RAW_CONTACT_ID, rawcontectid);
        ppv.put(android.provider.ContactsContract.Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
        ppv.put(Phone.NUMBER, "975657789");
        ppv.put(Phone.TYPE, Phone.TYPE_MOBILE);
        this.getContentResolver().insert(android.provider.ContactsContract.Data.CONTENT_URI, ppv);
    
    0 讨论(0)
  • 2020-12-08 12:28

    Add Contact Details in android

    import java.util.ArrayList;
    
    import android.app.Activity;
    import android.content.ContentProviderOperation;
    import android.content.ContentProviderResult;
    import android.content.OperationApplicationException;
    import android.net.Uri;
    import android.os.Bundle;
    import android.os.RemoteException;
    import android.provider.ContactsContract;
    import android.provider.ContactsContract.CommonDataKinds.Phone;
    import android.provider.ContactsContract.CommonDataKinds.StructuredName;
    import android.provider.ContactsContract.Contacts.Data;
    import android.provider.ContactsContract.RawContacts;
    
    public class DemoAddAddressBook extends Activity {
     /** Called when the activity is first created. */
     @Override
     public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);
    
      /*
       * Uri newPerson = addContactName();
       *
       * addMobilePhoneNo(newPerson); addEmail(newPerson);
       * addPostalAddress(newPerson); addOrganization(newPerson);
       */
    
      ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
      int rawContactInsertIndex = ops.size();
    
      ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
        .withValue(RawContacts.ACCOUNT_TYPE, null)
        .withValue(RawContacts.ACCOUNT_NAME, null).build());
    
      //Phone Number
      ops.add(ContentProviderOperation
        .newInsert(ContactsContract.Data.CONTENT_URI)
        .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID,
          rawContactInsertIndex)
        .withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE)
        .withValue(Phone.NUMBER, "9X-XXXXXXXXX")
        .withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE)
        .withValue(Phone.TYPE, "1").build());
    
      //Display name/Contact name
      ops.add(ContentProviderOperation
        .newInsert(ContactsContract.Data.CONTENT_URI)
        .withValueBackReference(Data.RAW_CONTACT_ID,
          rawContactInsertIndex)
        .withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
        .withValue(StructuredName.DISPLAY_NAME, "Mike Sullivan")
        .build());
      //Email details
      ops.add(ContentProviderOperation
        .newInsert(ContactsContract.Data.CONTENT_URI)
        .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID,
          rawContactInsertIndex)
        .withValue(Data.MIMETYPE, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE)
        .withValue(ContactsContract.CommonDataKinds.Email.DATA, "abc@aho.com")
        .withValue(Data.MIMETYPE, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE)
        .withValue(ContactsContract.CommonDataKinds.Email.TYPE, "2").build());
    
    
      //Postal Address
    
        ops.add(ContentProviderOperation
          .newInsert(ContactsContract.Data.CONTENT_URI)
          .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID,
            rawContactInsertIndex)
          .withValue(Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE )
          .withValue(ContactsContract.CommonDataKinds.StructuredPostal.POBOX, "Postbox")
    
          .withValue(Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE )
          .withValue(ContactsContract.CommonDataKinds.StructuredPostal.STREET, "street")
    
          .withValue(Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE )
          .withValue(ContactsContract.CommonDataKinds.StructuredPostal.CITY, "city")
    
          .withValue(Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE )
          .withValue(ContactsContract.CommonDataKinds.StructuredPostal.REGION, "region")
    
          .withValue(Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE )
          .withValue(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE, "postcode")
    
          .withValue(Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE )
          .withValue(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY, "country")
    
          .withValue(Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE )
          .withValue(ContactsContract.CommonDataKinds.StructuredPostal.TYPE, "3")
    
    
          .build());
    
    
      //Organization details
      ops.add(ContentProviderOperation
        .newInsert(ContactsContract.Data.CONTENT_URI)
        .withValueBackReference(Data.RAW_CONTACT_ID,
          rawContactInsertIndex)
        .withValue(Data.MIMETYPE, ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE )
        .withValue(ContactsContract.CommonDataKinds.Organization.COMPANY, "Devindia")
        .withValue(Data.MIMETYPE, ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE )
        .withValue(ContactsContract.CommonDataKinds.Organization.TITLE, "Developer")
        .withValue(Data.MIMETYPE, ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE )
        .withValue(ContactsContract.CommonDataKinds.Organization.TYPE, "0")
    
        .build());
      //IM details
        ops.add(ContentProviderOperation
          .newInsert(ContactsContract.Data.CONTENT_URI)
          .withValueBackReference(Data.RAW_CONTACT_ID,
            rawContactInsertIndex)
          .withValue(Data.MIMETYPE, ContactsContract.CommonDataKinds.Im.CONTENT_ITEM_TYPE)
          .withValue(ContactsContract.CommonDataKinds.Im.DATA, "ImName")
          .withValue(Data.MIMETYPE, ContactsContract.CommonDataKinds.Im.CONTENT_ITEM_TYPE )
          .withValue(ContactsContract.CommonDataKinds.Im.DATA5, "2")
    
    
          .build());
      try {
       ContentProviderResult[] res = getContentResolver().applyBatch(
         ContactsContract.AUTHORITY, ops);
      } catch (RemoteException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      } catch (OperationApplicationException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      }
    
     }
    }
    
    0 讨论(0)
  • 2020-12-08 12:33

    This answer seems to be helpful: https://stackoverflow.com/a/3279117/1259161

    It describes how to invoke the contacts entry form using the ContractsContract APIs. These APIs ought to also let you make use of ContactsContract.CommonDataKinds.StructuredPostal to specify the extra fields you want.

    0 讨论(0)
提交回复
热议问题