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.