2

我想向現有聯繫人添加新的電子郵件地址。如何向android中的聯繫人添加新字段

我用這個代碼:

ArrayList<ContentProviderOperation> insertEmailList = 
      new ArrayList<ContentProviderOperation>(); 
    Uri uri=null; 
    for (ContactEmail contactEmail : emails) { 
     values.put(ContactsContract.Data.RAW_CONTACT_ID, id); 
     values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE); 
     values.put(ContactsContract.CommonDataKinds.Email.ADDRESS, contactEmail.getEmailAddress()); 
     values.put(ContactsContract.CommonDataKinds.Email.TYPE, ContactsContract.CommonDataKinds.Email.TYPE_CUSTOM); 
     uri=contentResolver.insert(android.provider.ContactsContract.Data.CONTENT_URI, values); 
    } 

當運行這段代碼uricontent://com.android.contacts/data/2135,但我的聯繫方式也不無例外updated.my應用程序運行。

+0

看看這個答案http://stackoverflow.com/a/8802659/726954 –

+1

的[修改聯繫地址](可能的複製http://stackoverflow.com/questions/8788053/modifying-contact -信息) –

回答

6

enter image description here

 Cursor mRawContactCursor = context.getContentResolver().query(
      ContactsContract.RawContacts.CONTENT_URI, 
      null, 
      ContactsContract.Data.CONTACT_ID + " = ?", 
      new String[] {ID}, 
      null); 
    mRawContactCursor.moveToFirst(); 
    String rawId = mRawContactCursor.getString(mRawContactCursor.getColumnIndex(ContactsContract.RawContacts._ID)); 

使用這個代碼,以查找_ID或RAW_CONTACT_ID然後更新或插入聯繫。

 for (ContactEmail contactEmail : emails) { 
     values.put(ContactsContract.Data.RAW_CONTACT_ID, rawId); 
     values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE); 
     values.put(ContactsContract.CommonDataKinds.Email.ADDRESS, "[email protected]"); 
     values.put(ContactsContract.CommonDataKinds.Email.TYPE, type.home); 
     contentResolver.insert(android.provider.ContactsContract.Data.CONTENT_URI, values); 
    } 
相關問題