Как работает связь с Android?

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

То, что я наблюдал на своем телефоне, заключается в том, что некоторые контакты были связаны автоматически, а некоторые не были (хотя, когда вы переходите на экран ручной ссылки, Android предложит неплохие совпадения), и я смущен этим.

Итак, мои конкретные вопросы:

  1. Что такое триггер для автоматической связи контактов? Когда это происходит?
  2. Скажем, что ответ на 1) - «когда новый контакт добавляется вручную или через синхронизацию аккаунта». Итак, когда добавляется новый контакт, что произойдет? Будет ли Android проходить через все существующие контакты и попытаться выяснить, является ли новый контакт только связанным контактом?
  3. Когда Android распознает новый контакт как связанный контакт? Когда имена совпадают? Телефонные номера? Электронные письма? Некоторая комбинация из них?

Любое прозрение поможет расчистить это для меня, спасибо.

8 голосов | спросил Borek Bernard 12 AMpThu, 12 Apr 2012 02:30:44 +040030Thursday 2012, 02:30:44

1 ответ


10

См. раздел Автоматическая агрегирование контактных данных в Использование API контактов из технических ресурсов на сайте разработчиков Android .

Как объясняется в статье:

  

Когда сырой контакт добавлен или изменен, система ищет совпадающие (перекрывающиеся) необработанные контакты, с помощью которых можно их агрегировать. Он может не найти подходящих сырых контактов, и в этом случае он создаст совокупный контакт, содержащий только исходный сырой контакт. Если он находит одно совпадение, он создает новый контакт, содержащий два необработанных контакта. И он может даже найти несколько похожих исходных контактов, и в этом случае он выбирает самое близкое соответствие.

     

Два необработанных контакта считаются совпадающими, если выполняется хотя бы одно из этих условий:

     
  • У них есть соответствующие имена.
  •   
  • Их имена состоят из одних и тех же слов, но в другом порядке (например, "Bob Parr" и "Parr, Bob") литий>   
  • У одного из них есть общее короткое имя для другого (например, "Bob Parr" и "Robert Parr") литий>   
  • У одного из них есть только первое или последнее имя, и он соответствует другому сырому контакту. Это правило менее надежное, поэтому оно применяется только в том случае, если два сырых контакта также используют некоторые другие данные, такие как номер телефона, адрес электронной почты или псевдоним (например, Helen ["elastigirl"] = Helen Parr ["elastigirl"])
  •   
  • По крайней мере, один из двух сырых контактов не содержит названия вообще, и они делят номер телефона, адрес электронной почты или псевдоним (например, Bob Parr [[email protected]] = [email protected])
  •   

При сравнении имен система игнорирует разницу в верхнем /нижнем регистре (Bob=BOB=bob) и диакритические метки (Hélène=Helene). При сравнении двух телефонных номеров система игнорирует специальные символы, такие как "*", "#", "(", ")" и пробельные символы. Кроме того, если единственное различие между двумя номерами состоит в том, что у одного есть код страны, а другой нет, то система считает, что это совпадение (за исключением номеров в японском коде страны)

     

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

Далее в статье объясняются различные режимы, которые приложение может назначать raw-контактам , которые он создает. В зависимости от режима система будет либо:

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

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

Наконец, вы можете вручную присоединиться к контактам в приложении People , отредактировав одну из пары контактов и выбрав Join из меню переполнения.

ответил ctt 12 AMpThu, 12 Apr 2012 03:57:02 +040057Thursday 2012, 03:57:02

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132