ContactsContract.Directory 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
디렉터리가 연락처 모음(예: )을 나타냅니다.
[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
- 상속
- 특성
설명
디렉터리가 연락처 모음(예: 로컬 연락처, 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 디렉터리 공급자로 식별합니다. <meta-data android:name="android.content.ContactDirectory" android:value="true" />
이 태그는 해당 콘텐츠 공급자 선언 내에 배치해야 합니다.
</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 형식입니다 |
ContentType |
연락처 디렉터리의 디렉터리를 제공하는 MIME 형식 |
Default |
로컬로 저장된 연락처를 나타내는 기본 디렉터리의 _ID. |
DirectoryAuthority |
디렉터리 공급자의 권한입니다. |
DisplayName |
UI에서 이 디렉터리를 나타내는 데 사용할 수 있는 선택적 이름입니다. |
EnterpriseDefault |
로컬로 저장된 연락처를 나타내는 관리 프로필 기본 디렉터리의 _ID. |
EnterpriseLocalInvisible |
로컬로 저장된 보이지 않는 연락처를 나타내는 관리되는 프로필 디렉터리의 _ID. |
ExportSupport |
, , |
ExportSupportAnyAccount |
사용되지 않음.
|
ExportSupportNone |
사용되지 않음.
|
ExportSupportSameAccountOnly |
사용되지 않음.
|
LocalInvisible |
로컬로 저장된 보이지 않는 연락처를 나타내는 디렉터리의 _ID. |
PackageName |
이 디렉터리를 소유하는 패키지의 이름입니다. |
PhotoSupport |
, , |
PhotoSupportFull |
사용되지 않음.
|
PhotoSupportFullSizeOnly |
사용되지 않음.
|
PhotoSupportNone |
사용되지 않음.
|
PhotoSupportThumbnailOnly |
사용되지 않음.
|
ShortcutSupport |
, , |
ShortcutSupportDataItemsOnly |
사용되지 않음.
|
ShortcutSupportFull |
사용되지 않음.
|
ShortcutSupportNone |
사용되지 않음.
|
TypeResourceId |
패키지 |
속성
Class |
이 |
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) |
디렉터리가 연락처 모음(예: )을 나타냅니다. |