2010-11-29 11 views
0

私は、android 2.0を開始した連絡先への堅牢な参照を維持するための最良の方法について、あなたの意見に興味があります。私はこの問題に関して多くのことを読んだことがありますが、どちらのテクニックが賢明で、新しいテクニックがあるのか​​分かりません。以下は私が今までに見つけた3つのオプションです:CONTACT_ID - 同期を維持する

1自分のdbを使用しないでください。 contacts.contractを拡張してデータを書き込む

2 - ContentObserverを使用して連絡先の変更を追跡します。この手法は、しかし、私を

、3-ストアをあなたのDB内のCONTACT_IDに関連するすべてRAW接触IDを実行しているアプリケーションを必要とし、私の場合は、そのすべての構成要素RAW連絡先

から集計接触の内容を推測するだろう別のDBを維持する必要があると集計とDIS-集計後CONTACT_ID電流を維持する任意の他の新しい技術がありますかと思いまして...

私はで新しいコンタクトAPIで遊んでい

+0

私はあなたの正確な要求が3番目のポイントであることを知っています。アプリケーションデータベースにすべてのRAW連絡先IDを格納する必要があるのはなぜですか?なぜなら、RAW連絡先IDはRAW_CONTACTSから抽出することができるためです。 –

答えて

0

を教えてください瞬間、連絡先データのソースでもあるアプリを書いています。 #3はお勧めできません。 「私の」連絡先データをすべて取得するには、RawContacts.SYNC1フィールドに魔法の値を格納し、アプリの起動時に連絡先のコンテンツプロバイダに問い合わせます。

Re。あなたの質問は、揮発性であるため、CONTACT_IDは使用しないでください。ルックアップAPIを使用します。つまり、生の連絡先IDをお持ちの場合は、RawContacts.getContactLookupUri()を使用して連絡先にアクセスしてください。同様に、APIによって連絡先IDが与えられた場合は、Contacts.getLookupUri()を使用して、後で使用できる永続IDを取得します。

+0

こんにちはルベン。私の問題は、私は同期アダプタを実装していないことです。私はちょうど私のSQLデータベースにいくつかの連絡先を格納していると私はそれらの連絡先に堅牢な参照が必要です。私の理解では、lookup_keyとcontact_idの両方が変更され、私は連絡先に一致するものを使用できません。 – Mak

+0

これらのAPIはSyncAdapter専用ではなく、ルックアップURIは連絡先の有効期間中有効です。 (しかし、もちろん、アプリが実行されていない間にあなたが追跡している連絡先を削除することができるようにコードを作成する必要があります)。 –

関連する問題