2012-08-15 7 views
9

Ich muss wissen, ob es möglich ist, zwei oder mehr Kontakte (auf eine programmatische Weise, die Verwendung der Kontakte Android API oder etwas) zu verbinden.Wie kann ich programmatisch 2 Kontakte in Android verbinden?

Zum Beispiel habe ich einen Kontakt "Axel Rose" mit einem E-Mail-Konto und einer Telefonnummer, und ich habe festgestellt, dass einige Anwendungen wie WhatsApp, Facebook und Skype neue Kontakteinträge für Axel Rose erstellen, statt die bestehende verschmelzen.

Ich kann Kontakte mit der "Join-Funktion" vom Telefon aus verbinden, aber gibt es einen programmatischen Weg?

Vielen Dank im Voraus.
Cristian.

+3

Ja, das ist machbar, aber scheint zu groß für eine Codierung Antwort für Sie zu tun. Aber Sie müssten die Kontakte finden, alle Informationen abrufen, die alten löschen und eine neue erstellen, die kombiniert wird. Ich würde hier beginnen: http://developer.android.com/reference/android/provider/ContactsContract.html –

+0

@ MichaelWildermuth legte das als Antwort bitte. Wenn Sie ihm sagen, wie es geht und genau das ist, wonach er fragt, sind Code-Antworten nicht immer die beste Antwort. – Warpzit

+0

@crist Haben Sie eine anwendbare Lösung dafür gefunden? – Ranjit

Antwort

1

Sie können AggregationExceptions verwenden. Siehe How to manual aggregate contacts?

Ein guter Ort, um zu verstehen, wie Kontakte und Aggregation Contacts Provider Documentation

Kurze Zusammenfassung funktioniert:

Die Kontakte, die Sie auf Ihrem Telefonbuch zu sehen sind diejenigen auf der ContactsContract.Contacts Tisch. Das im Telefonbuch angezeigte Foto, Telefon usw. stammt aus verschiedenen RawContacts-Einträgen. Ein Kontakt kann einen oder mehrere RawContacts haben.

Ein Kontakt hat zufällig mehrere RawContact, wenn die RawContacts einige gemeinsame Daten teilen (Name, Telefonnummer, E-Mail usw.). Die Vereinigung dieser RawContacts zu einem einzigen Kontakt erfolgt durch automatische Aggregationsregeln (siehe Contact Basics Dokumente).

Sie können keine Kontakte in die ContactsContract.Contacts-Tabelle einfügen. Aus der Dokumentation:

Hinweis: Wenn Sie versuchen, einen Kontakt in dem Kontakt Provider mit einem Einsatz() hinzufügen, erhalten Sie eine UnsupportedOperationException Exception. Wenn Sie versuchen, eine Spalte zu aktualisieren, die als "schreibgeschützt" aufgeführt ist, wird das Update ignoriert.

+0

Ich kann den Teil in den Dokumenten, den Sie gezeigt haben, nicht finden, der über das Zusammenführen/Verknüpfen von Kontakten spricht. Gibt es vielleicht ein Tutorial dafür? Ich habe zum Beispiel festgestellt, dass die neueste Kontakt-App von Google das Verknüpfen/Zusammenführen mehrerer Kontakte ermöglicht. Ist es Open Source? Wie funktioniert es? Können Sie bitte einen Beispielcode zum Zusammenführen/Verknüpfen von Kontakten anzeigen? –