2016-10-01 5 views
3

異なる連絡先情報と同じ名前の連絡先を1つの連絡先連絡先リストにプログラムでマージします。2つの異なる連絡先をプログラムでどのようにマージできますか(Android)

this linkも確認しました。これはanswerです。私は次のコードを使用している

ContentValues cv = new ContentValues(); 
cv.put(AggregationExceptions.TYPE, AggregationExceptions.TYPE_KEEP_TOGETHER); 
cv.put(AggregationExceptions.RAW_CONTACT_ID1, 1); 
cv.put(AggregationExceptions.RAW_CONTACT_ID2, 2); 
getContentResolver().update(AggregationExceptions.CONTENT_URI, cv, null, null); 

を私はまた、最初に、リスト内の連絡先のすべての情報を取得し、すべてのことの連絡先を削除し、方法で試してみました。その後、私が定義したcontactIdを持っているすべての情報を持つ新しい連絡先を追加します。これにより、連絡先を除くすべての連絡先が削除されます。事前に定義されたcontactIdが追加されていません。

hereが表示されます。

+1

、投票をモデレーターのフラグが設定アイブ+閉鎖します。 –

+1

@Kroltanそれはすでにタイトルに質問があります:連絡先自体のマージ。 2つの連絡先があり、多くの連絡先アプリのように、連絡先をリンクする方法を考えてみましょう。彼はすでに入力として2つの連絡先を持っています( "1"と "2"と記されています)。彼は通常のAPIを使用して失敗したので、連絡先を自分で変更してマージしようとしました。それはなぜ閉鎖されていますか? –

+0

@androiddeveloper私のコメントの日付を見てください。編集履歴を見てください。その後、すべての詳細が追加されました。私がコメントしたとき、質問は*ずっと悪かった。この時点で、あなたは私のコメントに古いものとしてフラグを立てるべきです。 – Kroltan

答えて

0

SQLiteデータベースにすべての連絡先を挿入する場合、SQLiteクエリを使用して同じ名前の連絡先を取得できます。

連絡先リストから古い連絡先を削除し、新しい連絡先をあなたのアプリからマージして追加します。

+0

私はそのアイデアを持っていますが、私にはうまくいかない@Pawneshwer –

+0

どこにこのアイデアがありますか? – LearnPainLess

+0

@pawneshwar連絡先の詳細を1つの連絡先にマージし、新しい連絡先を追加します。 –

2

連絡先を取得し、2つの連絡先をマージするロジックを構築しているとします。

ContactsContract.RawContacts._IDmasterContactIdcontactIdの2つの連絡先を手動でマージしたいとしましょう。

は今、あなたは、次のコードでマージすることができます:

@Kroltanが合意
ArrayList <ContentProviderOperation> ops = new ArrayList <ContentProviderOperation>(); 

ops.add(ContentProviderOperation.newUpdate(ContactsContract.AggregationExceptions.CONTENT_URI) 
    .withValue(ContactsContract.AggregationExceptions.TYPE, ContactsContract.AggregationExceptions.TYPE_KEEP_TOGETHER) 
    .withValue(ContactsContract.AggregationExceptions.RAW_CONTACT_ID1, masterContactId) 
    .withValue(ContactsContract.AggregationExceptions.RAW_CONTACT_ID2, contactId).build()); 

try { 
    getApplicationContext().getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops); 
} catch (RemoteException e) { 
    e.printStackTrace(); 
} catch (OperationApplicationException e) { 
    e.printStackTrace(); 
} 
+0

私はこのコード@ Shaishavを試しましたが、出力はありませんでした。重複した連絡先が電話機に存在します。 –

+0

コードを投稿してください。あなたは連絡先リストやその他のものをどのように入手できますか? –

+0

"masterContactId"とは、そのルックアップキーを意味しますか?いくつかの追加コードを投稿していただけますか?複数の連絡先をどのようにリンクしますか? –

関連する問題