¿Cómo funciona la vinculación de contactos de Android?

8

Me gustaría entender cómo funciona la vinculación de contactos en Android, o para ser específico, me gustaría entenderlo bastante profundamente, casi desde un punto de vista algorítmico .

Lo que he observado en mi teléfono es que algunos contactos se vincularon automáticamente, otros no (aunque cuando vaya a la pantalla de vinculación manual, Android sugerirá coincidencias bastante buenas) y estoy confundido acerca de esto.

Entonces mis preguntas específicas son:

  1. ¿Cuál es el disparador para la vinculación automática de contactos? ¿Cuándo ocurre?
  2. Digamos que la respuesta a 1) es "cuando se agrega un nuevo contacto, ya sea manualmente o mediante sincronización de cuenta". Entonces, cuando se agregue este nuevo contacto, ¿qué sucederá? ¿Android pasará por todos los contactos existentes e intentará averiguar si el nuevo contacto es solo un contacto vinculado?
  3. ¿Cuándo reconocerá Android al nuevo contacto como un contacto vinculado? Cuando los nombres coinciden? ¿Números de teléfono? Correos electrónicos? ¿Alguna combinación de esos?

Cualquier idea me ayudaría a aclarar esto, gracias.

Borek Bernard
fuente

Respuestas:

10

Consulte la sección sobre Agregación automática de datos de contacto en la API Uso de los contactos de los recursos técnicos en el sitio para desarrolladores de Android .

Como explica el artículo:

Cuando se agrega o modifica un contacto sin formato, el sistema busca contactos sin formato coincidentes (superpuestos) con los que agregarlo. Es posible que no encuentre contactos sin procesar coincidentes, en cuyo caso creará un contacto agregado que contiene solo el contacto sin procesar original. Si encuentra una sola coincidencia, crea un nuevo contacto que contiene los dos contactos sin procesar. E incluso puede encontrar múltiples contactos sin procesar similares, en cuyo caso elige la coincidencia más cercana.

Dos contactos sin procesar se consideran coincidentes si se cumple al menos una de estas condiciones:

  • Tienen nombres coincidentes.
  • Sus nombres consisten en las mismas palabras pero en diferente orden (por ejemplo, "Bob Parr"y "Parr, Bob")
  • Uno de ellos tiene un nombre corto común para el otro (por ejemplo, "Bob Parr"y "Robert Parr")
  • Uno de ellos solo tiene un nombre o apellido y coincide con el otro contacto sin procesar. Esta regla es menos confiable, por lo que solo se aplica si los dos contactos sin procesar también comparten otros datos, como un número de teléfono, una dirección de correo electrónico o un apodo (por ejemplo Helen ["elastigirl"] = Helen Parr ["elastigirl"])
  • Al menos a uno de los dos contactos sin procesar le falta el nombre y están compartiendo un número de teléfono, una dirección de correo electrónico o un apodo (por ejemplo Bob Parr [[email protected]] = [email protected]).

Al comparar nombres, el sistema ignora las diferencias entre mayúsculas (Bob=BOB=bob)y minúsculas y los signos diacríticos (Hélène=Helene). Al comparar dos números de teléfono del sistema ignora caracteres especiales como "*", "#", "(", ")", y un espacio en blanco. Además, si la única diferencia entre dos números es que uno tiene un código de país y el otro no, entonces el sistema considera que coinciden (excepto los números en el código de país de Japón)

La agregación automática no es permanente; Cualquier cambio de un contacto bruto constituyente puede crear un nuevo agregado o romper uno existente.

Luego, el artículo continúa explicando los diversos modos que una aplicación puede asignar a los contactos sin formato que crea. Dependiendo del modo, el sistema:

  • Agregue automáticamente el contacto a medida que se encuentren similitudes con otros contactos. Cuando las similitudes ya no existan, se eliminarán estas agregaciones.
  • Nunca agregue el contacto con ningún otro.
  • No realice más agregaciones en un contacto, incluso si ese contacto cambia de modo que se elimine de un grupo agregado.

Además de esta agregación automática, las aplicaciones también pueden configurar contactos agregados manualmente. En estos casos, el algoritmo depende de la aplicación.

Por último, usted puede unirse manualmente los contactos de la gente aplicación mediante la edición de una de un par de contactos, y seleccionar Joinen el menú de desbordamiento.

ctt
fuente
¿Puedes resumir el enlace? Si se cae, su respuesta se vuelve mucho menos útil.
Matthew leyó el
@MatthewLeer seguro. Debido a que la explicación del sitio es bastante concisa, decidí incluirla con citas y referencias adecuadas. Para completar, también incluí detalles sobre cómo agregar contactos manualmente.
ctt
@Borek, sé que es una respuesta muy antigua, pero ¿te importaría marcarla como la respuesta a tu pregunta?
ctt
El enlace se ha apagado. ¿Podría @ctt por casualidad actualizar la respuesta con un nuevo enlace?
Sammy