Я недавно создал адаптер синхронизации для своего приложения. Он будет синхронизировать контакты, полученные через веб-запрос, с контактами в телефоне. У меня нет проблем с добавлением контакта, однако я не могу получить контактную информацию для корректного обновления при изменении контактной информации. Например, поле «Название компании» в контакте. Вот несколько примеров запросов, которые я пробовал, которые не работали или работали только частично (т.е. некоторые контакты обновлены, но не правильно):
ContentValues values = new ContentValues();
values.put(ContactsContract.CommonDataKinds.Organization.COMPANY, "New Company");
context.getContentResolver().update(Uri.parse("content://com.android.contacts/data/"), values, BaseColumns._ID + "=?", new String[] { String.valueOf(id) } );
Я также пытался сделать это в пакетном режиме, как предлагается в документации Android:
builder = ContentProviderOperation
.newUpdate(ContactsContract.Data.CONTENT_URI);
builder.withSelection(BaseColumns._ID + " =?", new String[]{String.valueOf(id)});
builder.withValue(
ContactsContract.CommonDataKinds.Organization.COMPANY,
"New Company Name!");
operationList.add(builder.build());
Я прочитал документацию ContactContracts и первоначально следовал этому учебнику . Я также проверил в AuthenticatorActivity
пример в API безрезультатно. Любая помощь с благодарностью.