我目前正在開發一個應用程序,我需要將聯繫人插入到移動電話聯繫人列表中。使用ContactsContract.RawContacts批量插入,我成功地將聯繫人插入到電話簿中。在聯繫人插入獲取聯繫人ID
http://developer.android.com/reference/android/provider/ContactsContract.RawContacts.html
但是試圖更新他們時,他們只需添加更多PHONENUMBER,而不是換舊人。
所以我來到ContactsContract.Data,通過Contact_ID可以明顯更新替換舊的電話號碼。
http://developer.android.com/reference/android/provider/ContactsContract.Data.html
我現在的問題是,是否有可能檢索Contacts_ID上插入?因此,當我通過此代碼插入聯繫人時:
ArrayList<ContentProviderOperation> ops =
new ArrayList<ContentProviderOperation>();
...
int rawContactInsertIndex = ops.size();
ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
.withValue(RawContacts.ACCOUNT_TYPE, accountType)
.withValue(RawContacts.ACCOUNT_NAME, accountName)
.build());
ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID, rawContactInsertIndex)
.withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
.withValue(StructuredName.DISPLAY_NAME, "Mike Sullivan")
.build());
getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
我會找回Contacts_ID?
謝謝你提前給我任何幫助。
謝謝,它適用於我。你剛剛解決了我的一個大問題 – Max 2012-03-28 12:38:05
沒問題。也許你可以給我一隻手:http://stackoverflow.com/questions/9907751/android-update-a-contact – Manitoba 2012-03-28 12:44:57