2012-08-15 11 views
9

2つ以上の連絡先に参加できるかどうかを知る必要があります(連絡先android APIなどを使用してプログラム的に)。アンドロイドで2人の連絡先をプログラムで登録するにはどうすればよいですか?

たとえば、メールアカウントと電話番号が の「Axel Rose」という連絡先があり、whatsapp、Facebook、SkypeのようなアプリでAxel Roseの新しい連絡先が作成されている既存のものをマージする。

私は電話から「参加機能」を使用して連絡先に参加できますが、プログラム的な方法はありますか?

ありがとうございます。
クリスチャン。

+3

はい、これは実行可能ですが、コード化する答えが大きすぎてあなたのためにできないようです。しかし、連絡先を見つけて、すべての情報を取得し、古い情報を削除し、新しい情報を作成する必要があります。私はここから始めるでしょう:http://developer.android.com/reference/android/provider/ContactsContract.html –

+0

@MichaelWildermuthは答えとしてそれを入れました。あなたは彼にそれをする方法を教えて、それはまさに彼が求めているものです、コードの答えは常に最高の答えではありません。 – Warpzit

+0

@cristこれに対応する解決策はありましたか? – Ranjit

答えて

1

AggregationExceptionsを使用できます。 How to manual aggregate contactsを参照してください。

あなたが電話帳に表示接点がContactsContract.Contactsテーブル上のものです:

連絡先や凝集がどのように機能するかを理解するには良い場所はContacts Provider Documentation

短い要約です。電話帳に表示されている写真、電話などは、RawContactsの別のエントリから取得します。連絡先には複数のRawContactsが1つあります。

RawContactが共通(名前、電話番号、電子メールなど)に関するいくつかのデータを共有している場合、連絡先にRawContactが複数存在することがあります。このRawContactsと単一のContactとの結合は自動集約ルールによって行われます(Contact Basicsドキュメントを参照)。

ContactsContract.Contactsテーブルに連絡先を挿入することはできません。ドキュメントから :

注:挿入()とコンタクトプロバイダに連絡先を追加しようとした場合、あなたは、UnsupportedOperationException例外を取得します。 「読み取り専用」として列挙されている列を更新しようとすると、更新は無視されます。

+0

連絡先のマージ/リンクについて話したところで、私があなたが示したドキュメントでその部分を見つけることができません。これについてのチュートリアルはありますか?私は、たとえば、Googleの最新の連絡先アプリで複数の連絡先をリンク/マージすることが可能であることに気づいた。オープンソースですか?どのように機能するのですか?連絡先のマージ/リンクのサンプルコードを表示できますか? –

関連する問題