Come funziona il collegamento dei contatti Android?


8

Mi piacerebbe capire come funziona il collegamento dei contatti in Android o, per essere precisi, mi piacerebbe capirlo abbastanza profondamente, quasi da un punto di vista algoritmico .

Quello che ho osservato sul mio telefono è che alcuni contatti sono stati collegati automaticamente, altri no (anche se quando vai alla schermata di collegamento manuale Android suggerirà abbinamenti abbastanza buoni) e sono confuso su questo.

Quindi le mie domande specifiche sono:

  1. Qual è il trigger per il collegamento automatico dei contatti? Quando succede?
  2. Supponi che la risposta a 1) sia "quando viene aggiunto un nuovo contatto, manualmente o tramite la sincronizzazione dell'account". Quindi quando verrà aggiunto questo nuovo contatto, cosa accadrà? Android passerà attraverso tutti i contatti esistenti e proverà a scoprire se il nuovo contatto è solo un contatto collegato?
  3. Quando Android riconoscerà il nuovo contatto come contatto collegato? Quando i nomi corrispondono? Numeri di telefono? Messaggi di posta elettronica? Qualche combinazione di quelli?

Qualsiasi intuizione mi aiuterebbe a chiarire questo per me, grazie.

Risposte:


10

Consulta la sezione relativa all'aggregazione automatica dei dati di contatto nell'API Uso delle Contatti dalle risorse tecniche sul sito degli sviluppatori Android .

Come spiega l'articolo:

Quando viene aggiunto o modificato un contatto non elaborato, il sistema cerca i contatti non elaborati corrispondenti (sovrapposti) con cui aggregarlo. Potrebbe non trovare alcun contatto grezzo corrispondente, nel qual caso creerà un contatto aggregato che contiene solo il contatto grezzo originale. Se trova una singola corrispondenza, crea un nuovo contatto che contiene i due contatti non elaborati. E può anche trovare più contatti grezzi simili, nel qual caso sceglie la corrispondenza più vicina.

Due contatti non elaborati sono considerati corrispondenti se si verifica almeno una di queste condizioni:

  • Hanno nomi corrispondenti.
  • I loro nomi sono composti dalle stesse parole ma in ordine diverso (ad esempio, "Bob Parr"e "Parr, Bob")
  • Uno di essi ha un nome breve comune per l'altro (ad esempio, "Bob Parr"e "Robert Parr")
  • Uno di essi ha solo un nome o un cognome e corrisponde all'altro contatto non elaborato. Questa regola è meno affidabile, quindi si applica solo se i due contatti non elaborati condividono anche alcuni altri dati come un numero di telefono, un indirizzo e-mail o un nickname (ad esempio, Helen ["elastigirl"] = Helen Parr ["elastigirl"])
  • Ad almeno uno dei due contatti non elaborati manca il nome e condividono un numero di telefono, un indirizzo e-mail o un nickname (ad esempio Bob Parr [incredible@android.com] = incredible@android.com).

Quando si confrontano i nomi, il sistema ignora le differenze maiuscole / minuscole (Bob=BOB=bob)e i segni diacritici (Hélène=Helene). Quando si confrontano due numeri di telefono il sistema ignora i caratteri speciali come "*", "#", "(", ")", e gli spazi. Inoltre, se l'unica differenza tra due numeri è che uno ha un prefisso nazionale e l'altro no, il sistema li considera come una corrispondenza (ad eccezione dei numeri nel prefisso nazionale giapponese)

L'aggregazione automatica non è permanente; qualsiasi modifica di un contatto grezzo costituente può creare un nuovo aggregato o spezzarne uno esistente.

L'articolo continua quindi a spiegare le varie modalità che un'applicazione può assegnare ai contatti non elaborati che crea. A seconda della modalità, il sistema:

  • Aggrega automaticamente il contatto quando vengono rilevate somiglianze con altri contatti. Laddove le somiglianze non esistono più, queste aggregazioni verranno rimosse.
  • Non aggregare mai il contatto con nessun altro.
  • Non eseguire ulteriori aggregazioni su un contatto, anche se quel contatto cambia in modo tale da essere rimosso da un gruppo aggregato.

Oltre a questa aggregazione automatica, le applicazioni possono anche impostare manualmente contatti aggregati. In questi casi, l'algoritmo dipende dall'applicazione.

Infine, puoi unire manualmente i contatti nell'app Persone modificando uno di una coppia di contatti e selezionando Joindal menu di overflow.


Puoi riassumere il link? Se muore la tua risposta diventa molto meno utile.
Matteo Leggi il

@MatthewLeggi. Poiché la spiegazione del sito è piuttosto concisa, ho deciso di integrarla con citazioni e riferimenti adeguati. Per completezza, ho anche incluso i dettagli sull'aggregazione manuale dei contatti.
ctt

@Borek, so che è una risposta molto vecchia, ma ti dispiace contrassegnarla come risposta alla tua domanda?
ctt

Il link è morto. Potresti per caso @ctt aggiornare la risposta con un nuovo link?
Sammy,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.