ContactsContract.Directory 类

定义

目录表示联系人料料库,e.

[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 全局地址列表或公司全局地址列表。

目录作为内容提供程序实现,具有其唯一的权威和与 main 联系人提供程序相同的 API。 但是,并不期望每个目录提供程序都会完全实现此协定。 如果目录提供程序没有特定请求的实现,则应引发 UnsupportedOperationException。

目录最重要的用例是搜索。 目录提供程序应至少 ContactsContract.Contacts#CONTENT_FILTER_URI Contacts.CONTENT_FILTER_URI支持 。 如果目录提供程序想要参与电子邮件和电话查找功能,则它还应实现 CommonDataKinds.Email#CONTENT_FILTER_URI CommonDataKinds.Email.CONTENT_FILTER_URICommonDataKinds.Phone#CONTENT_FILTER_URI CommonDataKinds.Phone.CONTENT_FILTER_URI

目录提供程序应为其无法识别的每个投影字段返回 NULL,而不是引发异常。 这样,如果将来使用新字段扩展 ContactsContract,它就不会中断。

客户端通过提供可选的 directory= 查询参数,通过联系人提供程序与目录交互。

当联系人提供程序收到请求时,它会转换 URI 并将请求转发到相应的目录内容提供程序。 URI 按以下方式转换: <ul<>li>URI 颁发机构将替换为相应的 #DIRECTORY_AUTHORITY。</li><li>使用accountName=相应的 #ACCOUNT_TYPEaccountType= 值添加或替换 和 #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> 然后联系人提供程序将查询发送到 Directory#CONTENT_URI Directory.CONTENT_URI 每个目录颁发机构。 目录提供程序必须实现此查询并返回目录列表。 提供程序返回的每个目录必须对 和 #ACCOUNT_TYPE 列具有唯一的组合#ACCOUNT_NAME, () 允许 null。 由于目录 ID 是自动分配的,因此_ID字段不会是查询投影的一部分。 </li><li>联系人提供程序将从所有目录提供程序接收的目录列表编译为一个目录,为每个目录分配全局唯一 ID,并将所有目录记录存储在 Directory 表中。 </li></ul></p>

联系人提供程序会自动询问新安装或替换的包。 因此,只需安装包含目录提供程序的包即可注册该提供程序。 提供目录提供程序的包不必包含可启动活动。

目录表中的每一行会自动与相应的包关联 (apk) 。 如果稍后卸载包,则会自动从联系人提供程序中删除所有相应的目录行。

当目录提供程序处理的目录列表更改 (例如,当用户) 添加新的 Directory 帐户时,目录提供程序应调用 #notifyDirectoryChange 以通知联系人提供程序更改。 作为响应,联系人提供程序将重新查询目录提供程序以获取新的目录列表。

可以选择将目录行与现有帐户相关联, (请参阅 android.accounts.AccountManager) 。 如果以后删除了帐户,则会自动从联系人提供程序中删除相应的目录行。

android.provider.ContactsContract.DirectoryJava 文档。

此页面的部分内容是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的术语使用。

字段

AccountName

与此目录关联的帐户。

AccountType

与此目录关联的帐户类型。

CallerPackageParamKey

传递给目录提供程序的查询参数,指示发出查询请求的客户端包名称。

ContentItemType

项的 #CONTENT_URI MIME 类型。

ContentType

提供联系人目录的 MIME 类型 #CONTENT_URI

Default

_ID表示本地存储联系人的默认目录。

DirectoryAuthority

目录提供程序的颁发机构。

DisplayName

一个可选名称,可用于在 UI 中表示此目录,e。

EnterpriseDefault

_ID托管配置文件默认目录,表示本地存储的联系人。

EnterpriseLocalInvisible

_ID表示本地存储的不可见联系人的托管配置文件目录。

ExportSupport

#EXPORT_SUPPORT_NONE#EXPORT_SUPPORT_ANY_ACCOUNT#EXPORT_SUPPORT_SAME_ACCOUNT_ONLY的其中一个。

ExportSupportAnyAccount
已过时.

一个 #EXPORT_SUPPORT 设置,指示目录允许将其数据复制到任何联系人帐户。

ExportSupportNone
已过时.

一个 #EXPORT_SUPPORT 设置,指示目录不允许从其中复制任何数据。

ExportSupportSameAccountOnly
已过时.

一个 #EXPORT_SUPPORT 设置,指示目录仅允许将其数据复制到 指定的 #ACCOUNT_TYPE/#ACCOUNT_NAME帐户。

LocalInvisible

_ID表示本地存储的不可见联系人的目录。

PackageName

拥有此目录的包的名称。

PhotoSupport

#PHOTO_SUPPORT_NONE#PHOTO_SUPPORT_THUMBNAIL_ONLY#PHOTO_SUPPORT_FULL的其中一个。

PhotoSupportFull
已过时.

指示 #PHOTO_SUPPORT 目录可以生成缩略图以及全尺寸联系人照片的设置。

PhotoSupportFullSizeOnly
已过时.

一个 #PHOTO_SUPPORT 设置,指示目录具有全尺寸的联系人照片,但不能提供缩放的缩略图。

PhotoSupportNone
已过时.

指示 #PHOTO_SUPPORT 目录不提供任何照片的设置。

PhotoSupportThumbnailOnly
已过时.

一个 #PHOTO_SUPPORT 设置,指示目录只能生成联系人照片的小尺寸缩略图。

ShortcutSupport

#SHORTCUT_SUPPORT_NONE#SHORTCUT_SUPPORT_DATA_ITEMS_ONLY#SHORTCUT_SUPPORT_FULL的其中一个。

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

目录表示联系人料料库,e.

(继承自 Object)
JniPeerMembers

目录表示联系人料料库,e.

PeerReference

目录表示联系人料料库,e.

(继承自 Object)
ThresholdClass

此 API 支持 Mono for Android 基础结构,不应直接从代码使用。

(继承自 Object)
ThresholdType

此 API 支持 Mono for Android 基础结构,不应直接从代码使用。

(继承自 Object)

方法

Clone()

创建并返回此对象的副本。

(继承自 Object)
Dispose()

目录表示联系人料料库,e.

(继承自 Object)
Dispose(Boolean)

目录表示联系人料料库,e.

(继承自 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>()

目录表示联系人料料库,e.

(继承自 Object)
ToString()

返回对象的字符串表示形式。

(继承自 Object)
UnregisterFromRuntime()

目录表示联系人料料库,e.

(继承自 Object)
Wait()

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>。<>

(继承自 Object)
Wait(Int64)

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<>

(继承自 Object)
Wait(Int64, Int32)

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<>

(继承自 Object)

显式接口实现

IJavaPeerable.Disposed()

目录表示联系人料料库,e.

(继承自 Object)
IJavaPeerable.DisposeUnlessReferenced()

目录表示联系人料料库,e.

(继承自 Object)
IJavaPeerable.Finalized()

目录表示联系人料料库,e.

(继承自 Object)
IJavaPeerable.JniManagedPeerState

目录表示联系人料料库,e.

(继承自 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

目录表示联系人料料库,e.

(继承自 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

目录表示联系人料料库,e.

(继承自 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

目录表示联系人料料库,e.

(继承自 Object)

扩展方法

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

目录表示联系人料料库,e.

GetJniTypeName(IJavaPeerable)

目录表示联系人料料库,e.

适用于