Share via


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을 throw해야 합니다.

디렉터리에 대한 가장 중요한 사용 사례는 검색입니다. 디렉터리 공급자는 적어도 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 해야 합니다.

디렉터리 공급자는 예외를 throw하는 대신 인식할 수 없는 모든 프로젝션 필드에 대해 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>

디렉터리 테이블은 읽기 전용이며 연락처 공급자가 자동으로 유지 관리합니다.

항상 적어도 두 개의 행이 있습니다. <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> Then Contacts Provider는 Directory#CONTENT_URI Directory.CONTENT_URI 각 디렉터리 기관에 쿼리를 보냅니다. 디렉터리 공급자는 이 쿼리를 구현하고 디렉터리 목록을 반환해야 합니다. 공급자가 반환하는 각 디렉터리에는 및 #ACCOUNT_TYPE 열에 #ACCOUNT_NAME 대한 고유한 조합이 있어야 합니다(null은 허용됨). 디렉터리 ID가 자동으로 할당되므로 _ID 필드는 쿼리 프로젝션의 일부가 되지 않습니다. </li li><>Contacts Provider는 모든 디렉터리 공급자로부터 받은 디렉터리 목록을 하나로 컴파일하고, 각 개별 디렉터리에 전역적으로 고유한 ID를 할당하고, 디렉터리 테이블에 모든 디렉터리 레코드를 저장합니다. </li></ul></p>

연락처 공급자는 새로 설치되거나 교체된 패키지를 자동으로 심문합니다. 따라서 디렉터리 공급자가 포함된 패키지를 설치하는 것만으로도 해당 공급자를 등록할 수 있습니다. 디렉터리 공급자를 제공하는 패키지는 시작 가능한 활동을 포함할 필요가 없습니다.

디렉터리 테이블의 모든 행은 해당 패키지(apk)와 자동으로 연결됩니다. 패키지가 나중에 제거되면 해당 디렉터리 행이 연락처 공급자에서 자동으로 제거됩니다.

디렉터리 공급자가 처리하는 디렉터리 목록이 변경되면(사용자가 새 디렉터리 계정을 추가할 때 instance 경우) 디렉터리 공급자가 를 호출 #notifyDirectoryChange 하여 연락처 공급자에게 변경 내용을 알려야 합니다. 이에 대한 응답으로 연락처 공급자는 디렉터리 공급자를 다시 쿼리하여 새 디렉터리 목록을 가져옵니다.

디렉터리 행은 필요에 따라 기존 계정과 연결할 수 있습니다(참조 android.accounts.AccountManager). 계정이 나중에 제거되면 해당 디렉터리 행이 연락처 공급자에서 자동으로 제거됩니다.

에 대한 Java 설명서입니다 android.provider.ContactsContract.Directory.

이 페이지의 일부는 만들고 공유하며 에 설명된 조건에 따라 사용되는 작업을 기반으로 수정됩니다.

필드

AccountName

이 디렉터리가 연결된 계정입니다.

AccountType

이 디렉터리가 연결된 계정 유형입니다.

CallerPackageParamKey

쿼리 요청을 수행한 클라이언트 패키지 이름을 나타내는 디렉터리 공급자에게 전달되는 쿼리 매개 변수입니다.

ContentItemType

항목의 MIME 형식입니다 #CONTENT_URI .

ContentType

연락처 디렉터리의 디렉터리를 제공하는 MIME 형식 #CONTENT_URI 입니다.

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로 캡처된 디렉터리의 형식입니다.

속성

Class

Object의 런타임 클래스를 반환합니다.

(다음에서 상속됨 Object)
ContentUri

이 테이블의 content:// 스타일 URI입니다.

EnterpriseContentUri

호출하는 사용자와 연결된 관리 프로필 모두에서 모든 디렉터리를 가져오는 데 사용되는 URI입니다.

Handle

기본 Android instance 대한 핸들입니다.

(다음에서 상속됨 Object)
JniIdentityHashCode

디렉터리가 연락처 모음(예: )을 나타냅니다.

(다음에서 상속됨 Object)
JniPeerMembers

디렉터리가 연락처 모음(예: )을 나타냅니다.

PeerReference

디렉터리가 연락처 모음(예: )을 나타냅니다.

(다음에서 상속됨 Object)
ThresholdClass

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

(다음에서 상속됨 Object)
ThresholdType

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

(다음에서 상속됨 Object)

메서드

Clone()

이 개체의 복사본을 만들고 반환합니다.

(다음에서 상속됨 Object)
Dispose()

디렉터리가 연락처 모음(예: )을 나타냅니다.

(다음에서 상속됨 Object)
Dispose(Boolean)

디렉터리가 연락처 모음(예: )을 나타냅니다.

(다음에서 상속됨 Object)
Equals(Object)

다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다.

(다음에서 상속됨 Object)
GetHashCode()

개체의 해시 코드 값을 반환합니다.

(다음에서 상속됨 Object)
IsEnterpriseDirectoryId(Int64)

디렉터리 ID가 엔터프라이즈 프로필의 연락처 공급자에 있는 경우 TRUE를 반환합니다.

IsRemoteDirectoryId(Int64)

원격 저장된 디렉터리인 경우 TRUE를 반환합니다.

JavaFinalize()

가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다.

(다음에서 상속됨 Object)
Notify()

이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다.

(다음에서 상속됨 Object)
NotifyAll()

이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다.

(다음에서 상속됨 Object)
NotifyDirectoryChange(ContentResolver)

특정 디렉터리 공급자가 처리하는 디렉터리 목록의 변경 사항을 시스템에 알합니다.

SetHandle(IntPtr, JniHandleOwnership)

Handle 속성을 설정합니다.

(다음에서 상속됨 Object)
ToArray<T>()

디렉터리가 연락처 모음(예: )을 나타냅니다.

(다음에서 상속됨 Object)
ToString()

개체의 문자열 표현을 반환합니다.

(다음에서 상속됨 Object)
UnregisterFromRuntime()

디렉터리가 연락처 모음(예: )을 나타냅니다.

(다음에서 상속됨 Object)
Wait()

현재 스레드가 깨어날 때까지 대기하게 합니다( 일반적으로 <알림을 받><거나 <>중단/>em>)합니다<.

(다음에서 상속됨 Object)
Wait(Int64)

현재 스레드가 깨어날 때까지 대기하게 합니다. 일반적으로 <>알림을 받<거나 <중단</>내보내>>거나 일정량의 실시간이 경과할 때까지 대기합니다.

(다음에서 상속됨 Object)
Wait(Int64, Int32)

현재 스레드가 깨어날 때까지 대기하게 합니다. 일반적으로 <>알림을 받<거나 <중단</>내보내>>거나 일정량의 실시간이 경과할 때까지 대기합니다.

(다음에서 상속됨 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)

디렉터리가 연락처 모음(예: )을 나타냅니다.

적용 대상