2012-08-15 12 views
9

Ho bisogno di sapere se è possibile unire due o più contatti (in modo programmatico, usando l'API Android Contatti o qualcosa del genere). Ad esempio, ho un contatto "Axel Rose" con un account e-mail e un numero di telefono, e ho notato che alcune app come whatsapp, Facebook e Skype stanno creando nuove voci di contatto per Axel Rose, invece di fusione di quello esistente.Come posso unire programmaticamente 2 contatti in Android?

Posso unire i contatti utilizzando la funzione "Partecipa" dal telefono, ma esiste un modo programmatico?

Grazie in anticipo.
Cristian.

+3

Sì, questo è fattibile, ma sembra una risposta di codifica troppo grande da fare per voi. Ma dovresti trovare i contatti, prendere tutte le informazioni, eliminare quelli vecchi e crearne uno nuovo combinato. Vorrei iniziare qui: http://developer.android.com/reference/android/provider/ContactsContract.html –

+0

@MichaelWildermuth lo ha inserito come risposta per favore. Il tuo dirgli come si fa e questo è esattamente ciò che sta chiedendo, le risposte al codice non sono sempre la migliore risposta. – Warpzit

+0

@crist Hai ottenuto alcuna soluzione applicabile per questo .. – Ranjit

risposta

1

È possibile utilizzare AggregationExceptions. Vedi How to manual aggregate contacts?

Un buon posto per capire come i contatti e l'aggregazione funziona è Contacts Provider Documentation

Breve riassunto:

I contatti che vedete sulla vostra rubrica sono quelle sul tavolo ContactsContract.Contacts. La foto, il telefono, ecc. Mostrati nella rubrica provengono da diverse voci di RawContacts. Un contatto può avere uno o più RawContacts.

Un contatto ha più RawContact quando i RawContacts condividono alcuni dati su comune (nome, numero di telefono, e-mail, ecc.). L'unione di questi RawContacts in un singolo contatto avviene tramite regole di aggregazione automatica (vedere Contact Basics documenti).

Non è possibile inserire contatti nella tabella ContactsContract.Contacts. Dalla documentazione:

Nota: Se si tenta di aggiungere un contatto ai contatti provider con un inserto(), si otterrà un'eccezione UnsupportedOperationException. Se si tenta di aggiornare una colonna elencata come "di sola lettura", l'aggiornamento viene ignorato.

+0

Non riesco a trovare la parte sui documenti che hai mostrato, che parla della fusione/collegamento dei contatti. C'è forse un tutorial per questo? Ho notato, ad esempio, che la nuovissima app di contatti di Google consente di collegare/unire più contatti. È open source? Come funziona? Puoi mostrare un codice di esempio per unire/collegare i contatti? –