Делаю контактную книжку, необходимо реализовать удаление номера телефона из контакта. На стаке мне посоветовали код:
private final String queryPhone = ContactsContract.Contacts.Data.RAW_CONTACT_ID + "=? AND " + ContactsContract.Contacts.Data.MIMETYPE + "='"
+ ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE + "'" + " AND ";
private final String queryByNumber = ContactsContract.CommonDataKinds.Phone.NUMBER + "=?";
public void removePhoneByNumber(Long contactId, String phoneNumber) {
ArrayList<ContentProviderOperation> os = new ArrayList();
String[] phoneArgs = new String[] {String.valueOf(contactId), phoneNumber};
os.add(ContentProviderOperation.newDelete(ContactsContract.Data.CONTENT_URI)
.withSelection(queryPhone + queryByNumber, phoneArgs)
.build());
try {
getContentResolver().applyBatch(ContactsContract.AUTHORITY, os);
}
catch (RemoteException e) {
e.printStackTrace();
}
catch (OperationApplicationException e) {
e.printStackTrace();
}
}
Автор кода говорит, что у него код работает, но у меня результата выполнения нет. Функция вызывается из слушателя кнопки удаления. Что посоветуете изменить? Или есть другой способ удаления номера из контакта?