2017-07-17 6 views
0

私は、デバイスの連絡先のContactsContract.Contacts.LOOKUP_KEYを取得し、それをアプリケーションDbに保存するアプリを持っています。ContactsContract.Contactsテーブルの連絡先を一意に識別する方法

thisページを読んだ後で、連絡先が編集されている(連絡先の名前を編集したなど)場合でも、連絡先を一意に識別するためにLOOKUP_KEYを使うことができました。

実際に連絡先を編集した後、そのLOOKUP_KEYが変更されたので、私はもうアプリケーションのDBに保存したLOOKUP_KEYを使用できません。

私の質問は、ContactsContract.Contactsの連絡先を、初めてデバイス上に作成されたときからデバイスから削除されるまで一意に識別する方法はありますか?

_IDと呼ばれる連絡先ごとに

答えて

1

LOOKUP_KEYは、キーとして単独で使用するのではなく、連絡先の_IDと一緒に使用して、lookupUriというフルフォームを作成する必要があります。

lookupUriは、CONTENT_LOOKUP_URIテーブルの連絡先を見つけるために使用できます。 それを見つけるために失敗した場合CONTENT_LOOKUP_URIは、基本的には、第1、_IDによって接触を探し、または_IDが間違って接触するように思える、それは試してみて、あなたのための正しい連絡先を追跡するLOOKUP_KEY一部からヒントを使用しています。 ショートカットを作成するか、そうでない場合の連絡先への長期的なリンクを作成するために使用されるべきこのテーブルの//スタイルURI:CONTENT_LOOKUP_URI

コンテンツから

。このURI の後には必ず "/"と連絡先のLOOKUP_KEYを続けてください。また、 には、オプションで「/」と最後に知られている連絡先IDが付加されていてもよい( )。この「完全な」フォーマットは重要な最適化であり、 が強く推奨されています。

連絡先の行IDが変わらない限り、このURIはCONTENT_URIに相当する です。連絡先の行IDが同期または集計の結果として に変更された場合、このURIは 間接情報(同期IDまたは構成元の連絡先)を使用して連絡先を検索します。

ルックアップキーはエンコードされずに追加する必要があります。エンコードされた フォームに格納され、URIで使用できる状態になります。

getLookupUri(long contactId, String lookupKey)

から与えられた_IDと LOOKUP_KEYを使用してCONTENT_LOOKUP_URI検索URIを構築します。LOOKUP_KEY

ヒントその 行IDが同期または凝集の結果として変更された場合、コンタクトを検索する方法についてを含有する不透明値から

+0

です。ありがとう男:) – MDP

1

行ID(主キー)をいただきありがとうございます。

+0

ありがとうございました:) – MDP

関連する問題