Как отличить основной контакт Android в Android? - PullRequest
0 голосов
/ 07 сентября 2018

У меня есть несколько необработанных контактов, связанных с одним контактом:

_id - 130
contact_id - 17434
account_type - com.google
aggregation_mode - 0
account_name - ...@gmail.com
display_name - ...
raw_contact_is_user_profile - 0

_id - 230
contact_id - 17434
account_type - com.whatsapp
aggregation_mode - 0
account_name - WhatsApp
display_name - ...
raw_contact_is_user_profile - 0


_id - 17217
contact_id - 17434
account_type - com.example
aggregation_mode - 0
account_name - Example
display_name - ...
raw_contact_is_user_profile - 0

Они принадлежат разным аккаунтам, есть ли надежный способ узнать, какой из них является "основным" необработанным контактом? Одно из возможных решений - проверить, сколько полей в столбце DATA имеет каждый контакт, но больше похоже на взлом.

Любая помощь будет оценена. Спасибо.

Ответы [ 2 ]

0 голосов
/ 08 сентября 2018

Как вы выяснили, в RawContacts нет такой концепции основного контакта, однако вы не можете полагаться на каждый контакт, имеющий либо Google raw, либо только телефонный raw.

Вы обнаружите, что есть пользователи, у которых есть контакты, состоящие из контактов для обмена, контактов Yahoo или других, о которых вы не слышали, или контактов с любой комбинацией этих и других.

Что бы вы ни пытались сделать, должен быть способ сделать это, не выбирая ни одного необработанного из объединенного необработанного *

0 голосов
/ 07 сентября 2018

Похоже, что нет понятия основной учетной записи, поэтому, как описано здесь , я могу использовать либо com.google, либо учетную запись без учетной записи для случая, когда пользователь не синхронизирует свои контакты.

...