ContactsContract.Directory クラス

定義

ディレクトリは、連絡先コーパス (例: ) を表します。

[Android.Runtime.Register("android/provider/ContactsContract$Directory", DoNotGenerateAcw=true)]
public sealed class ContactsContract.Directory : Java.Lang.Object
[<Android.Runtime.Register("android/provider/ContactsContract$Directory", DoNotGenerateAcw=true)>]
type ContactsContract.Directory = class
    inherit Object
継承
ContactsContract.Directory
属性

注釈

ディレクトリは、連絡先コーパス (ローカル連絡先、Google Apps グローバル アドレス一覧、企業グローバル アドレス一覧など) を表します。

ディレクトリは、一意の権限を持ち、メイン連絡先プロバイダーと同じ API を持つコンテンツ プロバイダーとして実装されます。 ただし、すべてのディレクトリ プロバイダーがこのコントラクトを完全に実装するとは想定されません。 ディレクトリ プロバイダーに特定の要求の実装がない場合は、UnsupportedOperationException をスローする必要があります。

ディレクトリの最も重要なユース ケースは検索です。 ディレクトリ プロバイダーは、少なくとも ContactsContract.Contacts#CONTENT_FILTER_URI Contacts.CONTENT_FILTER_URIをサポートする必要があります。 ディレクトリ プロバイダーが電子メールと電話のルックアップ機能に参加する場合は、 と CommonDataKinds.Phone#CONTENT_FILTER_URI CommonDataKinds.Phone.CONTENT_FILTER_URIも実装CommonDataKinds.Email#CONTENT_FILTER_URI CommonDataKinds.Email.CONTENT_FILTER_URIする必要があります。

ディレクトリ プロバイダーは、例外をスローするのではなく、認識されないすべてのプロジェクション フィールドに対して NULL を返す必要があります。 この方法は、ContactsContract が将来新しいフィールドで拡張された場合に破損することはありません。

クライアントは、オプション directory= のクエリ パラメーターを指定することで、連絡先プロバイダーを介してディレクトリと対話します。

連絡先プロバイダーは、要求を受信すると、URI を変換し、対応するディレクトリ コンテンツ プロバイダーに要求を転送します。 URI は次の方法で変換されます。 <ul><li>URI 機関は、対応する #DIRECTORY_AUTHORITYに置き換えられます。</li li><>と accountName=accountType= パラメーターは、対応する #ACCOUNT_TYPE#ACCOUNT_NAME の値を使用して追加または置換されます。</li></ul>

クライアントは、ディレクトリ プロバイダー URI を自分で構築するのではなく、連絡先プロバイダーにディレクトリ要求を送信し、それぞれのプロバイダーに転送できるようにする必要があります。 このレベルの間接参照により、連絡先プロバイダーは追加のシステム レベルの機能と最適化を実装できます。 連絡先プロバイダーへのアクセスはREAD_CONTACTSアクセス許可によって保護されますが、ディレクトリ プロバイダーへのアクセスはBIND_DIRECTORY_SEARCHによって保護されます。 このアクセス許可は API レベル 17 で導入されました。以前のプラットフォーム バージョンでは、プロバイダーは次のチェックを実行して、ContactsProvider からの呼び出しを確認する必要があります。

private boolean isCallerAllowed() {
              PackageManager pm = getContext().getPackageManager();
              for (String packageName: pm.getPackagesForUid(Binder.getCallingUid())) {
                if (packageName.equals("com.android.providers.contacts")) {
                  return true;
                }
              }
              return false;
            }

</p>

ディレクトリ テーブルは読み取り専用であり、連絡先プロバイダーによって自動的に管理されます。

常に、少なくとも次の 2 つの行があります。 <ul><li> ローカル ディレクトリ。 には があります Directory#_ID Directory._ID = Directory#DEFAULT Directory.DEFAULT。 このディレクトリを使用して、ローカルに保存されている連絡先にアクセスできます。 パラメーターを完全に directory= 省略することで、同じことができます。 </li li><> ローカルの非表示の連絡先。 対応するディレクトリ ID は です Directory#LOCAL_INVISIBLE Directory.LOCAL_INVISIBLE。 </li></ul>

カスタム ディレクトリは、次の手順に従って連絡先プロバイダーによって検出されます。 <ul><li>インストールされているすべてのコンテンツ プロバイダーが、メタ データで検索され、AndroidManifest.xml のディレクトリ プロバイダーとして識別されます。 &lt;meta-data android:name="android.content.ContactDirectory" android:value="true" /&gt;

このタグは、対応するコンテンツ プロバイダー宣言内に配置する必要があります。

</li li><> その後、連絡先プロバイダーはDirectory#CONTENT_URI Directory.CONTENT_URI、各ディレクトリ機関にクエリを送信します。 ディレクトリ プロバイダーは、このクエリを実装し、ディレクトリの一覧を返す必要があります。 プロバイダーによって返される各ディレクトリには、 列と #ACCOUNT_TYPE 列の一意の組み合わせ#ACCOUNT_NAMEが必要です (null は許可されます)。 ディレクトリ ID は自動的に割り当てられるため、_ID フィールドはクエリ プロジェクションに含まれません。 </li li><>Contacts Provider は、すべてのディレクトリ プロバイダーから受信したディレクトリ リストを 1 つにコンパイルし、各ディレクトリにグローバルに一意の ID を割り当て、すべてのディレクトリ レコードをディレクトリ テーブルに格納します。 </li></ul></p>

連絡先プロバイダーは、新しくインストールまたは置換されたパッケージを自動的に問い合わせします。 したがって、ディレクトリ プロバイダーを含むパッケージをインストールするだけで、そのプロバイダーを登録するだけで十分です。 ディレクトリ プロバイダーを提供するパッケージには、起動可能なアクティビティを含める必要はありません。

ディレクトリ テーブル内のすべての行は、対応するパッケージ (apk) に自動的に関連付けられます。 パッケージが後でアンインストールされた場合、対応するすべてのディレクトリ行が連絡先プロバイダーから自動的に削除されます。

ディレクトリ プロバイダーによって処理されるディレクトリの一覧が変更された場合 (ユーザーが新しいディレクトリ アカウントを追加した場合など)、ディレクトリ プロバイダーは を呼び出 #notifyDirectoryChange して連絡先プロバイダーに変更を通知する必要があります。 これに対して、連絡先プロバイダーはディレクトリ プロバイダーに再クエリを実行して、ディレクトリの新しいリストを取得します。

ディレクトリ行は、必要に応じて既存のアカウントに関連付けることができます (「」を参照)。android.accounts.AccountManager 後でアカウントが削除されると、対応するディレクトリ行が連絡先プロバイダーから自動的に削除されます。

android.provider.ContactsContract.DirectoryJava ドキュメント。

このページの一部は、によって作成および共有された作業に基づく変更であり、に記載されている条件に従って使用されます。

フィールド

AccountName

このディレクトリが関連付けられているアカウント。

AccountType

このディレクトリが関連付けられているアカウントの種類。

CallerPackageParamKey

クエリ要求を行ったクライアント パッケージ名を示すディレクトリ プロバイダーに渡されるクエリ パラメーター。

ContentItemType

#CONTENT_URI アイテムの MIME の種類。

ContentType

連絡先ディレクトリの #CONTENT_URI ディレクトリを提供する MIME の種類。

Default

ローカルに格納されている連絡先を表す既定のディレクトリの_ID。

DirectoryAuthority

ディレクトリ プロバイダーの権限。

DisplayName

このディレクトリを表すために UI で使用できる省略可能な名前 (例: )。

EnterpriseDefault

ローカルに格納されている連絡先を表す、マネージド プロファイルの既定のディレクトリの_ID。

EnterpriseLocalInvisible

ローカルに保存されている非表示の連絡先を表すマネージド プロファイル ディレクトリの_ID。

ExportSupport

#EXPORT_SUPPORT_ANY_ACCOUNT#EXPORT_SUPPORT_SAME_ACCOUNT_ONLY、 のいずれか#EXPORT_SUPPORT_NONE

ExportSupportAnyAccount
古い.

#EXPORT_SUPPORTディレクトリが任意の連絡先アカウントにデータをコピーすることを許可することを示す設定。

ExportSupportNone
古い.

#EXPORT_SUPPORTディレクトリからデータをコピーできないことを示す設定。

ExportSupportSameAccountOnly
古い.

#EXPORT_SUPPORTディレクトリが で指定された#ACCOUNT_TYPE/#ACCOUNT_NAMEアカウントにのみデータをコピーすることを許可することを示す設定。

LocalInvisible

ローカルに格納されている非表示の連絡先を表すディレクトリの_ID。

PackageName

このディレクトリを所有するパッケージの名前。

PhotoSupport

#PHOTO_SUPPORT_THUMBNAIL_ONLY#PHOTO_SUPPORT_FULL、 のいずれか#PHOTO_SUPPORT_NONE

PhotoSupportFull
古い.

#PHOTO_SUPPORTディレクトリがサムネイルとフルサイズの連絡先写真を生成できることを示す設定。

PhotoSupportFullSizeOnly
古い.

#PHOTO_SUPPORTディレクトリにフルサイズの連絡先写真が含まれているが、縮小されたサムネイルを提供できないことを示す設定。

PhotoSupportNone
古い.

#PHOTO_SUPPORTディレクトリが写真を提供しないことを示す設定。

PhotoSupportThumbnailOnly
古い.

#PHOTO_SUPPORTディレクトリが連絡先の写真の小さいサイズのサムネイルのみを生成できることを示す設定。

ShortcutSupport

#SHORTCUT_SUPPORT_DATA_ITEMS_ONLY#SHORTCUT_SUPPORT_FULL、 のいずれか#SHORTCUT_SUPPORT_NONE

ShortcutSupportDataItemsOnly
古い.

#SHORTCUT_SUPPORTディレクトリでメール、電話、住所などのデータ項目のショートカットを作成できるが、連絡先全体のショートカットは作成できないという設定。

ShortcutSupportFull
古い.

#SHORTCUT_SUPPORTディレクトリで、連絡先とその構成要素のショートカットを作成することを示す設定。

ShortcutSupportNone
古い.

#SHORTCUT_SUPPORTディレクトリが連絡先に対して作成されたショートカットを許可しないことを示す設定。

TypeResourceId

パッケージ #PACKAGE_NAMEのコンテキストでリソース ID としてキャプチャされたディレクトリの種類 (e)。

プロパティ

Class

この Objectのランタイム クラスを返します。

(継承元 Object)
ContentUri

このテーブルの content:// スタイル URI。

EnterpriseContentUri

呼び出し元のユーザーと、それにリンクされているマネージド プロファイルの両方からすべてのディレクトリを取得するために使用される URI。

Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
JniIdentityHashCode

ディレクトリは、連絡先コーパス (例: ) を表します。

(継承元 Object)
JniPeerMembers

ディレクトリは、連絡先コーパス (例: ) を表します。

PeerReference

ディレクトリは、連絡先コーパス (例: ) を表します。

(継承元 Object)
ThresholdClass

この API は Mono for Android インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

(継承元 Object)
ThresholdType

この API は Mono for Android インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

(継承元 Object)

メソッド

Clone()

このオブジェクトのコピーを作成して返します。

(継承元 Object)
Dispose()

ディレクトリは、連絡先コーパス (例: ) を表します。

(継承元 Object)
Dispose(Boolean)

ディレクトリは、連絡先コーパス (例: ) を表します。

(継承元 Object)
Equals(Object)

他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。

(継承元 Object)
GetHashCode()

オブジェクトのハッシュ コード値を返します。

(継承元 Object)
IsEnterpriseDirectoryId(Int64)

ディレクトリ ID がエンタープライズ プロファイルの連絡先プロバイダーからの場合は TRUE を返します。

IsRemoteDirectoryId(Int64)

リモート格納ディレクトリの場合は TRUE を返します。

JavaFinalize()

オブジェクトへの参照がなくなったとガベージ コレクションが判断したときに、オブジェクトのガベージ コレクターによって呼び出されます。

(継承元 Object)
Notify()

このオブジェクトのモニターで待機している 1 つのスレッドを起動します。

(継承元 Object)
NotifyAll()

このオブジェクトのモニターで待機しているすべてのスレッドを起動します。

(継承元 Object)
NotifyDirectoryChange(ContentResolver)

特定のディレクトリ プロバイダーによって処理されるディレクトリの一覧の変更をシステムに通知します。

SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

(継承元 Object)
ToArray<T>()

ディレクトリは、連絡先コーパス (例: ) を表します。

(継承元 Object)
ToString()

オブジェクトの文字列形式を返します。

(継承元 Object)
UnregisterFromRuntime()

ディレクトリは、連絡先コーパス (例: ) を表します。

(継承元 Object)
Wait()

現在のスレッドが起動するまで待機します。通常<は、通知</em> または>< em 中断</em によって待機します>。>

(継承元 Object)
Wait(Int64)

現在のスレッドが起動するまで待機します。通常<は、通知></em> または <>em 中断</em>、または特定のリアルタイムが経過するまで待機します。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドが起動するまで待機します。通常<は、通知></em> または <>em 中断</em>、または特定のリアルタイムが経過するまで待機します。

(継承元 Object)

明示的なインターフェイスの実装

IJavaPeerable.Disposed()

ディレクトリは、連絡先コーパス (例: ) を表します。

(継承元 Object)
IJavaPeerable.DisposeUnlessReferenced()

ディレクトリは、連絡先コーパス (例: ) を表します。

(継承元 Object)
IJavaPeerable.Finalized()

ディレクトリは、連絡先コーパス (例: ) を表します。

(継承元 Object)
IJavaPeerable.JniManagedPeerState

ディレクトリは、連絡先コーパス (例: ) を表します。

(継承元 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

ディレクトリは、連絡先コーパス (例: ) を表します。

(継承元 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

ディレクトリは、連絡先コーパス (例: ) を表します。

(継承元 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

ディレクトリは、連絡先コーパス (例: ) を表します。

(継承元 Object)

拡張メソッド

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

ディレクトリは、連絡先コーパス (例: ) を表します。

GetJniTypeName(IJavaPeerable)

ディレクトリは、連絡先コーパス (例: ) を表します。

適用対象