Обновите необработанный контакт в Android, если у вас есть только идентификатор контакта - PullRequest
0 голосов
/ 30 января 2012

В Android, когда пользователь выбирает один контакт с помощью средства выбора контактов, вы получаете только поле CONTACT_ID.Но для обновления некоторых контактных данных вам необходимо отредактировать необработанные контактные данные.Для этого вам нужно знать RAW_CONTACT_ID.Пока это правильно?

Итак, как вы получаете RAW_CONTACT_ID, который вам нужен для обновления данных, когда у вас есть только CONTACT_ID?Вот так ...?

String[] projection = new String[] { ContactsContract.RawContacts._ID };
String where = ContactsContract.RawContacts.CONTACT_ID + " = ?";
String[] selection = new String[] { String.valueOf(contactId) };
Cursor c = getContentResolver().query(ContactsContract.RawContacts.CONTENT_URI, projection, where, selection, null);

Но так вы получите все идентификаторы RAW_CONTACT_ID, принадлежащие выбранному пользователю, верно?Какой из них является необработанным контактом, который я должен обновить?

Если вы хотите сказать: «Это зависит от вас»: мне все равно.Я просто хочу поместить свои данные в любое место , в любой необработанный контакт, который может содержать данные.

Ответы [ 2 ]

0 голосов
/ 16 апреля 2014

Вы должны пройти через все необработанные контакты и найти лучший один для обновления. Вы можете отфильтровать контакты только для чтения, такие как Facebook (RAW_CONTACT_IS_READ_ONLY). Возможно, вы хотите найти необработанный контакт, который уже содержит поле для обновления. Если такого не существует, перейдите на учетную запись Google, если есть, в противном случае любой доступный для записи аккаунт. В зависимости от ситуации рассмотрите возможность записи для всех доступных для записи.

0 голосов
/ 31 января 2012

Там нет идеального ответа. Но самое простое и, пожалуй, самое правильное - использовать аккаунт Google.

Что вы можете сделать, выбрав ACCOUNT_TYPE , который будет "com.google" для аккаунта Google. Поскольку в телефоне может быть много аккаунтов Google, просто выберите первый (или тот, в котором большинство контактов).

...