Ich muss wissen, ob es möglich ist, zwei oder mehr Kontakte zu verbinden (auf programmatische Weise, mit Hilfe der Android-API Kontakte oder so).
Zum Beispiel habe ich einen Kontakt "Axel Rose" mit einem Email-Account und einer Telefonnummer, und mir ist aufgefallen, dass einige Apps wie WhatsApp, Facebook und Skype neue Kontakteinträge für Axel Rose erstellen, anstatt die bestehenden zu verschmelzen.
Ich kann Kontakte mit der "Join-Funktion" vom Telefon aus verbinden, aber gibt es einen programmatischen Weg?
Vielen Dank im Voraus.
Cristian.
Sie können AggregationExceptions verwenden. Siehe Wie aggregieren Sie Kontakte manuell ?
Ein guter Ort, um zu verstehen, wie Kontakte und Aggregation funktioniert, ist Contacts Provider Dokumentation
Kurze Zusammenfassung:
Die Kontakte, die Sie in Ihrem Telefonbuch sehen, sind diejenigen in der ContactsContract.Contacts-Tabelle. 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 Kontaktgrundlagen Dokumente).
Sie können keine Kontakte in die ContactsContract.Contacts-Tabelle einfügen. Aus der Dokumentation:
Hinweis: Wenn Sie versuchen, dem Kontaktanbieter einen Kontakt mit einem insert () hinzuzufügen, erhalten Sie eine UnsupportedOperationException-Ausnahme. Wenn Sie versuchen, eine Spalte zu aktualisieren, die als "schreibgeschützt" aufgeführt ist, wird das Update ignoriert.