我有以下代码来更新联系号码,但问题是,它只替换现有的
我想添加一个新号码并保留联系中已存在的号码,如果它有2个联系号码,我希望能够添加第三个号码,即使它已经在联系人中有MOBILE_NUMBER ,我希望能够添加一个新的。
我在stackoverflow中尝试了很多代码,但我找不到任何代码。
从我正在搜索的内容中,当您向现有联系人添加新号码时,实际上您创建了一个新联系人并关联到同一个contact_id。但我无法做到。
public static void updateContactNumber (String contactId, String newNumber, Activity act)
{
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
String selectPhone = Data.CONTACT_ID + "=? AND " + Data.MIMETYPE + "='" +
Phone.CONTENT_ITEM_TYPE + "'" + " AND " + Phone.TYPE + "=?";
String[] phoneArgs = new String[]{contactId, String.valueOf(Phone.TYPE_WORK)};
ops.add(ContentProviderOperation.newUpdate(Data.CONTENT_URI)
.withSelection(selectPhone, phoneArgs)
.withValue(Phone.NUMBER, "44441111")
.build());
try {
act.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();
}
}