Comment fonctionne la liaison de contacts Android?


8

Je voudrais comprendre comment fonctionne la liaison de contacts dans Android - ou pour être précis, je voudrais le comprendre assez profondément, presque d'un point de vue algorithmique .

Ce que j'ai observé sur mon téléphone, c'est que certains contacts ont été liés automatiquement, d'autres non (même si lorsque vous accédez à l'écran de liaison manuelle Android suggérera de très bonnes correspondances) et je suis confus à ce sujet.

Mes questions spécifiques sont donc:

  1. Quel est le déclencheur de la liaison automatique des contacts? Quand cela se produit-il?
  2. Supposons que la réponse au 1) soit "lorsqu'un nouveau contact est ajouté, manuellement ou via la synchronisation du compte". Alors, quand ce nouveau contact sera ajouté, que se passera-t-il? Android passera-t-il par tous les contacts existants et tentera-t-il de savoir si le nouveau contact n'est qu'un contact lié?
  3. Quand Android reconnaîtra-t-il le nouveau contact comme contact lié? Quand les noms correspondent-ils? Les numéros de téléphone? Des courriels? Une combinaison de ceux-ci?

Toute information aiderait à clarifier cela pour moi, merci.

Réponses:


10

Consultez la section sur l'agrégation automatique des données de contact dans Utilisation de l'API Contacts à partir des ressources techniques sur le site des développeurs Android .

Comme l'article l'explique:

Lorsqu'un contact brut est ajouté ou modifié, le système recherche les contacts bruts correspondants (qui se chevauchent) avec lesquels l'agréger. Il peut ne pas trouver de contacts bruts correspondants, auquel cas il créera un contact agrégé contenant uniquement le contact brut d'origine. S'il trouve une seule correspondance, il crée un nouveau contact qui contient les deux contacts bruts. Et il peut même trouver plusieurs contacts bruts similaires, auquel cas il choisit la correspondance la plus proche.

Deux contacts bruts sont considérés comme une correspondance si au moins une de ces conditions est remplie:

  • Ils ont des noms correspondants.
  • Leurs noms sont constitués des mêmes mots mais dans un ordre différent (par exemple, "Bob Parr"et "Parr, Bob")
  • L'un d'eux a un nom abrégé commun pour l'autre (par exemple, "Bob Parr"et "Robert Parr")
  • L'un d'eux a juste un prénom ou un nom et correspond à l'autre contact brut. Cette règle est moins fiable, elle ne s'applique donc que si les deux contacts bruts partagent également d'autres données comme un numéro de téléphone, une adresse e-mail ou un surnom (par exemple, Helen ["elastigirl"] = Helen Parr ["elastigirl"])
  • Au moins l'un des deux contacts bruts n'a pas de nom et ils partagent un numéro de téléphone, une adresse e-mail ou un surnom (par exemple, Bob Parr [incredible@android.com] = incredible@android.com).

Lors de la comparaison des noms, le système ignore les différences majuscules / minuscules (Bob=BOB=bob)et les signes diacritiques (Hélène=Helene). Lorsque l'on compare deux numéros de téléphone le système ne tient pas compte des caractères spéciaux tels que "*", "#", "(", ")"et des espaces. De plus, si la seule différence entre deux nombres est que l'un a un code de pays et l'autre pas, alors le système considère que ceux-ci sont une correspondance (sauf pour les nombres dans le code de pays du Japon)

L'agrégation automatique n'est pas permanente; tout changement d'un contact brut constitutif peut créer un nouvel agrégat ou casser un existant.

L'article explique ensuite les différents modes qu'une application peut attribuer aux contacts bruts qu'elle crée. Selon le mode, le système:

  • Agréger automatiquement le contact car des similitudes sont trouvées avec d'autres contacts. Lorsque les similitudes n'existent plus, ces agrégations seront supprimées.
  • Ne regroupez jamais le contact avec un autre.
  • N'effectuez aucune agrégation supplémentaire sur un contact, même si ce contact change de façon à être retiré d'un groupe d'agrégats.

Outre cette agrégation automatique, les applications sont également autorisées à configurer manuellement des contacts agrégés. Dans ces cas, l'algorithme dépend de l'application.

Enfin, vous pouvez joindre manuellement des contacts dans le peuple application en éditant une d'une paire de contacts, et en sélectionnant Joindans le menu de trop - plein.


Pouvez-vous résumer le lien? Si elle disparaît, votre réponse devient beaucoup moins utile.
Matthew Read

@MatthewRead sûr. Parce que l'explication du site est assez concise, j'ai décidé de l'inclure avec des citations et des références appropriées. Pour être complet, j'ai également inclus des détails sur l'agrégation manuelle des contacts.
ctt

@Borek, je sais que c'est une réponse très ancienne, mais cela vous dérange-t-il de la marquer comme réponse à votre question?
ctt

Le lien est mort. Pourriez-vous @ctt mettre à jour la réponse par un nouveau lien?
Sammy
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.