我有此代码
public void updateContact (String contactId, String newNumber) {ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
String selectPhone = Data.CONTACT_ID + "=? AND " + Data.MIMETYPE + "='" +
Phone.CONTENT_ITEM_TYPE + "'";
String[] phoneArgs = new String[]{contactId};
ops.add(ContentProviderOperation.newUpdate(Data.CONTENT_URI)
.withSelection(selectPhone, phoneArgs)
.withValue(Phone.NUMBER, newNumber)
.build());
try { 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();
}
}
我从这里How to update contact number using Android取而来,对其进行了更改,以便通过我的所有联系人,并为每个联系人添加我自己的前缀。
我贯穿所有联系人,并为此提供了String id = phones.getString(phones.getColumnIndex(ContactsContract.Contacts._ID));
以上功能的联系人ID。但是,即使给定的ID正确,某些联系人(尤其是具有多个数字的联系人和一些只有一个数字的联系人)也不会更改以获取新的前缀? 。我在这里想念什么吗,我不知道该改变什么。我认为这可能是mime类型,但我可以想象有人可能没有使用Android预先安装的手机类型,而是使用了自定义类型。我没有任何错误。谢谢大家的宝贵时间!!
我终于更改了代码以使其正常工作,我正在传递联系人ID,但是我需要电话ID ...这是正确的代码。
和有什么区别??