Bagaimana cara kerja penghubung kontak Android?

8

Saya ingin memahami cara kerja penghubung kontak di Android - atau lebih spesifik, saya ingin memahaminya secara mendalam, hampir dari sudut pandang algoritmik .

Apa yang saya amati di ponsel saya adalah bahwa beberapa kontak ditautkan secara otomatis, ada yang tidak (walaupun ketika Anda pergi ke layar yang menghubungkan secara manual, Android akan menyarankan kecocokan yang sangat baik) dan saya bingung tentang hal ini.

Jadi pertanyaan spesifik saya adalah:

  1. Apa pemicu tautan otomatis? Kapan itu terjadi?
  2. Katakan bahwa jawaban ke 1) adalah "ketika kontak baru ditambahkan, baik secara manual atau melalui sinkronisasi akun". Jadi ketika kontak baru ini ditambahkan, apa yang akan terjadi? Apakah Android akan menelusuri semua kontak yang ada dan mencoba mencari tahu apakah kontak baru itu hanya kontak yang ditautkan?
  3. Kapan Android akan mengenali kontak baru sebagai kontak yang ditautkan? Kapan nama cocok? Nomor telepon? Email? Kombinasi dari semua itu?

Setiap wawasan akan membantu menjernihkan ini untuk saya, terima kasih.

Borek Bernard
sumber

Jawaban:

10

Lihat bagian tentang Pengumpulan Data Kontak Otomatis di Menggunakan API Kontak dari sumber daya teknis di situs Pengembang Android .

Seperti yang dijelaskan dalam artikel:

Ketika kontak mentah ditambahkan atau dimodifikasi, sistem mencari kontak mentah yang cocok (tumpang tindih) yang digunakan untuk menjumlahkannya. Itu mungkin tidak menemukan kontak mentah yang cocok, dalam hal ini akan membuat kontak agregat yang hanya berisi kontak mentah asli. Jika menemukan satu yang cocok, itu menciptakan kontak baru yang berisi dua kontak mentah. Dan bahkan mungkin menemukan beberapa kontak mentah serupa, dalam hal ini ia memilih pasangan yang paling dekat.

Dua kontak mentah dianggap cocok jika setidaknya satu dari kondisi ini dipenuhi:

  • Mereka memiliki nama yang cocok.
  • Nama-nama mereka terdiri dari kata-kata yang sama tetapi dalam urutan yang berbeda (misalnya, "Bob Parr"dan "Parr, Bob")
  • Salah satu dari mereka memiliki nama pendek yang sama untuk yang lain (misalnya, "Bob Parr"dan "Robert Parr")
  • Salah satunya hanya memiliki nama depan atau belakang dan cocok dengan kontak baku lainnya. Aturan ini kurang dapat diandalkan, jadi itu hanya berlaku jika dua kontak mentah juga berbagi beberapa data lain seperti nomor telepon, alamat email atau nama panggilan (misalnya, Helen ["elastigirl"] = Helen Parr ["elastigirl"])
  • Setidaknya salah satu dari dua kontak baku tidak memiliki nama sama sekali dan mereka berbagi nomor telepon, alamat email atau nama panggilan (misalnya, Bob Parr [[email protected]] = [email protected]).

Saat membandingkan nama, sistem mengabaikan perbedaan huruf besar / kecil (Bob=BOB=bob)dan tanda diakritik (Hélène=Helene). Ketika membandingkan dua nomor telepon sistem mengabaikan karakter khusus seperti "*", "#", "(", ")", dan spasi. Juga jika satu-satunya perbedaan antara dua angka adalah bahwa satu memiliki kode negara dan yang lainnya tidak, maka sistem menganggap itu sebagai kecocokan (kecuali untuk angka dalam kode negara Jepang)

Agregasi otomatis tidak permanen; setiap perubahan kontak mentah konstituen dapat membuat agregat baru atau memecah yang sudah ada.

Artikel kemudian menjelaskan berbagai mode yang dapat ditetapkan oleh aplikasi ke kontak mentah yang dibuatnya. Bergantung pada mode, sistem akan:

  • Secara otomatis menggabungkan kontak karena kesamaan ditemukan dengan kontak lainnya. Ketika kesamaan tidak ada lagi, agregasi ini akan dihapus.
  • Jangan pernah menjumlahkan kontak dengan yang lain.
  • Jangan melakukan agregasi lebih lanjut pada kontak, bahkan jika kontak itu berubah sehingga akan dikeluarkan dari grup agregat.

Selain dari agregasi otomatis ini, aplikasi juga diperbolehkan untuk mengatur kontak agregat secara manual. Dalam kasus ini, algoritma tergantung pada aplikasi.

Akhirnya, Anda dapat bergabung secara manual di aplikasi People dengan mengedit salah satu dari sepasang kontak, dan memilih Joindari menu overflow.

ctt
sumber
Bisakah Anda meringkas tautannya? Jika mati jawaban Anda menjadi jauh lebih tidak berguna.
Matius Baca
@MatthewRead yakin. Karena penjelasan dari situs ini cukup ringkas, saya memutuskan untuk menyelaraskannya dengan kutipan dan referensi yang tepat. Untuk kelengkapan, saya juga menyertakan detail tentang agregat kontak secara manual.
ctt
@ Borek, saya tahu itu jawaban yang sangat lama, tetapi apakah Anda keberatan menandainya sebagai jawaban untuk pertanyaan Anda?
ctt
Tautannya sudah mati. Bisakah Anda @ctt secara kebetulan memperbarui jawaban dengan tautan baru?
Sammy