8 votes

Comment fonctionne la liaison de contact Android ?

J'aimerais comprendre comment fonctionne la liaison par contact dans Android - ou, pour être plus précis, j'aimerais la 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 passez à l'écran de liaison manuelle, Android suggère des correspondances assez bonnes) et je ne comprends pas bien.

Mes questions spécifiques sont donc les suivantes :

  1. Quel est le déclencheur de la liaison automatique des contacts ? Quand cela se produit-il ?
  2. Disons que la réponse à la question 1) est "lorsqu'un nouveau contact est ajouté, soit manuellement, soit via la synchronisation du compte". Donc, quand ce nouveau contact est ajouté, que va-t-il se passer ? Android va-t-il passer en revue tous les contacts existants et essayer de déterminer si le nouveau contact est simplement un contact lié ?
  3. Quand Android reconnaîtra-t-il le nouveau contact comme un contact lié ? Quand les noms correspondent ? Les numéros de téléphone ? Les courriels ? Une combinaison de ces éléments ?

Si vous avez des idées, vous pouvez m'aider à y voir plus clair, merci.

10voto

fd. Points 6835

Voir la section sur Agrégation automatique des données de contact dans le Utilisation de l'API Contacts à partir des ressources techniques du site Développeurs Android site.

Comme l'explique l'article :

Lorsqu'un contact brut est ajouté ou modifié, le système recherche les contacts bruts correspondants (se chevauchant) avec lesquels il peut être agrégé. Il se peut qu'il ne trouve aucun contact brut correspondant, auquel cas il crée un contact agrégé qui ne contient que le contact brut d'origine. S'il trouve une seule correspondance, il crée un nouveau contact qui contient les deux contacts bruts. 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 concordants si au moins une de ces conditions est remplie :

  • Ils ont des noms correspondants.
  • Leurs noms sont composés des mêmes mots mais dans un ordre différent (par exemple, "Bob Parr" y "Parr, Bob" )
  • L'un d'eux a un nom court commun pour l'autre (par exemple, "Bob Parr" y "Robert Parr" )
  • L'un d'entre eux n'a qu'un prénom ou un nom de famille et il 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 électronique ou un surnom (par exemple, Helen ["elastigirl"] = Helen Parr ["elastigirl"] )
  • Au moins un des deux contacts bruts n'a pas de nom et ils partagent un numéro de téléphone, une adresse électronique 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 entre majuscules et minuscules. (Bob=BOB=bob) et les signes diacritiques (Hélène=Helene) . Lors de la comparaison de deux numéros de téléphone, le système ignore les caractères spéciaux tels que "*" , "#" , "(", ")" et les espaces. De même, si la seule différence entre deux numéros est que l'un a un code de pays et l'autre non, le système considère qu'il s'agit d'une correspondance (sauf pour les numéros 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 briser un agrégat existant.

L'article explique ensuite les différents modes qu'une application peut assigner à l'élément contacts bruts qu'il crée. En fonction du mode, le système va soit :

  • Agréger automatiquement le contact au fur et à mesure que des similitudes sont trouvées avec d'autres contacts. Lorsque les similitudes n'existent plus, ces agrégations seront supprimées.
  • Ne jamais agréger le contact avec d'autres.
  • N'effectuez aucune autre agrégation sur un contact, même si ce contact change de telle sorte qu'il serait retiré d'un groupe agrégé.

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

Enfin, vous pouvez joindre manuellement les contacts dans le Personnes en modifiant l'un des deux contacts, et en sélectionnant Join dans le menu de débordement.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X