в Android 2.0 или более поздней версии можно ли идентифицировать все исходные контакты, из которых сформирован один совокупный контакт? - PullRequest
0 голосов
/ 05 декабря 2011

насколько вы знаете, есть контакты (совокупные контакты), которые образуются путем объединения двух или более необработанных контактов в Android V2.x

можно ли идентифицировать все необработанные контакты, из которых сформированы отдельные совокупные контакты, с помощью запроса в ContactsContract.Contacts, или есть способ идентифицировать их? контакты вообще?

Я не смог найти флаг или поле базы данных, которые бы говорили, что эти совокупные контакты связаны с этими необработанными контактами.

есть предложения?

Ответы [ 2 ]

1 голос
/ 24 августа 2012

Вы можете проверить AggregationExceptions.CONTENT_URI Таблица, где тип отношения AggregationExceptions.TYPE_KEEP_TOGETHER, AggregationExceptions.TYPE_KEEP_SEPARATE и т. Д.

и вы можете найти Raw_contact_id1 и raw_contact_id2.

Пример данных в базу данных. Допустим, 1,2,3,4 взаимосвязаны, поэтому вы можете найти следующие пары. Raw_contact_id1 raw_contact_id2 Тип отношений 1-> 2, 1-> 3, 1-> 4, 2-> 3, 2-> 4, 3-> 4

0 голосов
/ 08 декабря 2011

Контакт не может быть создан явно. Когда вставляется необработанный контакт, провайдер сначала пытается найти контакт, представляющий того же человека. Если один из них найден, столбец CONTACT_ID необработанного контакта получает _ID совокупного контакта. Если совпадений не найдено, поставщик автоматически вставляет новый контакт и помещает его _ID в столбец CONTACT_ID вновь вставленного необработанного контакта.

Таким образом, читая все контакты по одному, мы можем взять значение _ID и извлечь все контакты из raw_contacts, где _ID совпадает с raw_contacts.CONTACT_ID. Если счет больше 1, то мы можем заключить, что он связан с этими номерами контактов, иначе он не связан ни с каким другим контактом.

...