Consulte a seção Agregação automática de dados de contato na API Usando os contatos nos recursos técnicos do site Android Developers .
Como o artigo explica:
Quando um contato bruto é adicionado ou modificado, o sistema procura contatos brutos correspondentes (sobrepostos) com os quais agregar. Pode não encontrar contatos brutos correspondentes; nesse caso, criará um contato agregado que contém apenas o contato bruto original. Se encontrar uma única correspondência, cria um novo contato que contém os dois contatos brutos. E pode até encontrar vários contatos brutos semelhantes, caso em que escolhe a correspondência mais próxima.
Dois contatos brutos são considerados correspondentes se pelo menos uma dessas condições for atendida:
- Eles têm nomes correspondentes.
- Seus nomes consistem nas mesmas palavras, mas em ordem diferente (por exemplo,
"Bob Parr"
e "Parr, Bob"
)
- Um deles tem um nome abreviado comum para o outro (por exemplo,
"Bob Parr"
e "Robert Parr"
)
- Um deles tem apenas um nome ou sobrenome e corresponde ao outro contato bruto. Essa regra é menos confiável, portanto só se aplica se os dois contatos brutos também estiverem compartilhando outros dados, como um número de telefone, um endereço de email ou um apelido (por exemplo,
Helen ["elastigirl"] = Helen Parr ["elastigirl"]
)
- Pelo menos um dos dois contatos brutos está sem o nome completo e eles estão compartilhando um número de telefone, um endereço de email ou um apelido (por exemplo
Bob Parr [incredible@android.com] = incredible@android.com
).
Ao comparar nomes, o sistema ignora diferenças em maiúsculas / minúsculas (Bob=BOB=bob)
e marcas diacríticas (Hélène=Helene)
. Ao comparar dois números de telefone o sistema ignora caracteres especiais, como "*"
, "#"
, "(", ")"
, e espaços em branco. Além disso, se a única diferença entre dois números é que um possui um código de país e o outro não, então o sistema considera esses coincidentes (exceto para números no código de país do Japão)
A agregação automática não é permanente; qualquer alteração de um contato bruto constituinte pode criar um novo agregado ou interromper um existente.
O artigo continua explicando os vários modos que um aplicativo pode atribuir aos contatos brutos que ele cria. Dependendo do modo, o sistema irá:
- Agregue automaticamente o contato conforme as semelhanças são encontradas com outros contatos. Onde as semelhanças não existirem mais, essas agregações serão removidas.
- Nunca agregue o contato a nenhum outro.
- Não execute nenhuma agregação adicional em um contato, mesmo que esse contato seja alterado de forma que seja retirado de um grupo agregado.
Além dessa agregação automática, os aplicativos também podem configurar manualmente os contatos agregados. Nestes casos, o algoritmo depende da aplicação.
Por fim, você pode ingressar manualmente nos contatos no aplicativo People editando um de um par de contatos e selecionando Join
no menu estourar.