Most visited

Recently visited

Added in API level 11

ContactsContract.Directory

public static final class ContactsContract.Directory
extends Object implements BaseColumns

java.lang.Object
   ↳ android.provider.ContactsContract.Directory


目录代表联系人语料库,例如本地联系人,Google Apps全球通讯簿或公司全球通讯簿。

一个目录是作为一个内容提供者实现的,它具有唯一的权限和与主要的联系人提供者相同的API。 但是,并不期望每个目录提供者都将完整地实施本合同。 如果目录提供程序没有针对特定请求的实现,则应该引发UnsupportedOperationException。

目录最重要的用例是搜索。 目录提供商预计至少支持Contacts.CONTENT_FILTER_URI 如果号码簿提供商想要参与电子邮件和电话查询功能,它还应该实现CommonDataKinds.Email.CONTENT_FILTER_URICommonDataKinds.Phone.CONTENT_FILTER_URI

目录提供者应该为每个它无法识别的投影字段返回NULL,而不是抛出异常。 这样,如果将来使用新字段扩展ContactsContract,它将不会被破坏。

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

当联系人提供程序收到请求时,它将转换URI并将请求转发给相应的目录内容提供程序。 URI以下列方式转换:

客户端应该发送目录请求到联系人提供程序,并让它转发给相应的提供程序,而不是自己构建目录提供程序URI。 这种间接级别允许Contacts Provider实施其他系统级功能和优化。 访问联系人提供程序受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;
 }
 

目录表是只读的,由联系人提供程序自动维护。

它总是至少有这两行:

自定义目录由联系人提供程序按照以下过程发现:

联系人提供程序自动询问新安装或替换的软件包。 因此只需安装一个包含目录提供者的包就足以让该提供者注册。 提供目录提供者的包不必包含可启动的活动。

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

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

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

Summary

Constants

String ACCOUNT_NAME

与此目录相关联的帐户。

String ACCOUNT_TYPE

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

String CONTENT_ITEM_TYPE

CONTENT_URI项目的MIME类型。

String CONTENT_TYPE

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

long DEFAULT

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

String DIRECTORY_AUTHORITY

号码簿提供商的权威。

String DISPLAY_NAME

可以在UI中用来表示该目录的可选名称,例如

long ENTERPRISE_DEFAULT

工作资料默认目录的_ID,表示本地存储的联系人。

long ENTERPRISE_LOCAL_INVISIBLE

代表本地存储的不可见联系人的工作资料目录的_ID。

String EXPORT_SUPPORT

一个 EXPORT_SUPPORT_NONEEXPORT_SUPPORT_ANY_ACCOUNTEXPORT_SUPPORT_SAME_ACCOUNT_ONLY

int EXPORT_SUPPORT_ANY_ACCOUNT

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

int EXPORT_SUPPORT_NONE

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

int EXPORT_SUPPORT_SAME_ACCOUNT_ONLY

一个 EXPORT_SUPPORT设置指示该目录允许其数据复制到只由指定的帐户 ACCOUNT_TYPE / ACCOUNT_NAME

long LOCAL_INVISIBLE

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

String PACKAGE_NAME

拥有此目录的软件包的名称。

String PHOTO_SUPPORT

一个 PHOTO_SUPPORT_NONEPHOTO_SUPPORT_THUMBNAIL_ONLYPHOTO_SUPPORT_FULL

int PHOTO_SUPPORT_FULL

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

int PHOTO_SUPPORT_FULL_SIZE_ONLY

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

int PHOTO_SUPPORT_NONE

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

int PHOTO_SUPPORT_THUMBNAIL_ONLY

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

String SHORTCUT_SUPPORT

一个 SHORTCUT_SUPPORT_NONESHORTCUT_SUPPORT_DATA_ITEMS_ONLYSHORTCUT_SUPPORT_FULL

int SHORTCUT_SUPPORT_DATA_ITEMS_ONLY

一个 SHORTCUT_SUPPORT设置,指示该目录允许为电子邮件,电话或邮政地址等数据项创建快捷方式,但不允许为整个联系人创建快捷方式。

int SHORTCUT_SUPPORT_FULL

一个 SHORTCUT_SUPPORT设置,指示该目录允许创建联系人快捷方式及其组成元素。

int SHORTCUT_SUPPORT_NONE

指示该目录不允许为其联系人创建任何快捷方式的 SHORTCUT_SUPPORT设置。

String TYPE_RESOURCE_ID

在包 PACKAGE_NAME的上下文中捕获为资源ID的目录类型,例如

Inherited constants

From interface android.provider.BaseColumns

Fields

public static final Uri CONTENT_URI

该表格的内容://样式URI。

public static final Uri ENTERPRISE_CONTENT_URI

用于从主要和托管配置文件获取所有目录的URI。

Public methods

static boolean isEnterpriseDirectoryId(long directoryId)

如果目录ID来自企业档案中的联系人提供程序,则返回TRUE。

static boolean isRemoteDirectoryId(long directoryId)

如果它是远程存储的目录,则返回TRUE。

static void notifyDirectoryChange(ContentResolver resolver)

通知系统由特定目录提供程序处理的目录列表中的更改。

Inherited methods

From class java.lang.Object

Constants

ACCOUNT_NAME

Added in API level 11
String ACCOUNT_NAME

与此目录相关联的帐户。 如果该帐户稍后被删除,它所拥有的目录将从该表中自动删除。

类型:文字

常量值:“accountName”

ACCOUNT_TYPE

Added in API level 11
String ACCOUNT_TYPE

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

类型:文字

常量值:“accountType”

CONTENT_ITEM_TYPE

Added in API level 11
String CONTENT_ITEM_TYPE

CONTENT_URI项目的MIME类型。

常量值:“vnd.android.cursor.item / contact_directory”

CONTENT_TYPE

Added in API level 11
String CONTENT_TYPE

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

常量值:“vnd.android.cursor.dir / contact_directories”

DEFAULT

Added in API level 11
long DEFAULT

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

常量值:0(0x0000000000000000)

DIRECTORY_AUTHORITY

Added in API level 11
String DIRECTORY_AUTHORITY

号码簿提供商的权威。 联系人提供程序将使用此权限将请求转发给目录提供程序。 目录提供商可以将此列留空 - 联系人提供商将填写它。

此API的客户端不应直接向此权限发送请求。 所有目录请求必须通过联系人提供程序进行路由。

类型:文字

常值:“权威”

DISPLAY_NAME

Added in API level 11
String DISPLAY_NAME

可以在UI中用来表示该目录的可选名称,例如“Acme Corp”

类型:文字

常量值:“displayName”

ENTERPRISE_DEFAULT

Added in API level 24
long ENTERPRISE_DEFAULT

工作资料默认目录的_ID,表示本地存储的联系人。

常量值:1000000000(0x000000003b9aca00)

ENTERPRISE_LOCAL_INVISIBLE

Added in API level 24
long ENTERPRISE_LOCAL_INVISIBLE

代表本地存储的不可见联系人的工作资料目录的_ID。

常量值:1000000001(0x000000003b9aca01)

EXPORT_SUPPORT

Added in API level 11
String EXPORT_SUPPORT

一个EXPORT_SUPPORT_NONEEXPORT_SUPPORT_ANY_ACCOUNTEXPORT_SUPPORT_SAME_ACCOUNT_ONLY 这是目录对从其中导出的数据的期望。 客户必须遵守这一设置。

常数值:“exportSupport”

EXPORT_SUPPORT_ANY_ACCOUNT

Added in API level 11
int EXPORT_SUPPORT_ANY_ACCOUNT

指示该目录允许其数据复制到任何联系人帐户的 EXPORT_SUPPORT设置。

常量值:2(0x00000002)

EXPORT_SUPPORT_NONE

Added in API level 11
int EXPORT_SUPPORT_NONE

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

常量值:0(0x00000000)

EXPORT_SUPPORT_SAME_ACCOUNT_ONLY

Added in API level 11
int EXPORT_SUPPORT_SAME_ACCOUNT_ONLY

一个 EXPORT_SUPPORT设置指示该目录允许其数据复制到只由指定的帐户 ACCOUNT_TYPE / ACCOUNT_NAME

常数值:1(0x00000001)

LOCAL_INVISIBLE

Added in API level 11
long LOCAL_INVISIBLE

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

常量值:1(0x0000000000000001)

PACKAGE_NAME

Added in API level 11
String PACKAGE_NAME

拥有此目录的软件包的名称。 联系人提供程序使用包含目录提供程序的包的名称来填充它。 如果稍后卸载软件包,它所拥有的目录将自动从该表中删除。

TYPE: TEXT

常量值:“packageName”

PHOTO_SUPPORT

Added in API level 11
String PHOTO_SUPPORT

一个PHOTO_SUPPORT_NONEPHOTO_SUPPORT_THUMBNAIL_ONLYPHOTO_SUPPORT_FULL 这是一个功能标志,指示目录支持联系人照片的程度。

常数值:“photoSupport”

PHOTO_SUPPORT_FULL

Added in API level 11
int PHOTO_SUPPORT_FULL

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

常量值:3(0x00000003)

PHOTO_SUPPORT_FULL_SIZE_ONLY

Added in API level 11
int PHOTO_SUPPORT_FULL_SIZE_ONLY

PHOTO_SUPPORT设置,指示该目录具有全尺寸联系人照片,但无法提供缩放缩略图。

常量值:2(0x00000002)

PHOTO_SUPPORT_NONE

Added in API level 11
int PHOTO_SUPPORT_NONE

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

常量值:0(0x00000000)

PHOTO_SUPPORT_THUMBNAIL_ONLY

Added in API level 11
int PHOTO_SUPPORT_THUMBNAIL_ONLY

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

常数值:1(0x00000001)

SHORTCUT_SUPPORT

Added in API level 11
String SHORTCUT_SUPPORT

一个SHORTCUT_SUPPORT_NONESHORTCUT_SUPPORT_DATA_ITEMS_ONLYSHORTCUT_SUPPORT_FULL 这是目录对其元素创建的快捷方式的期望。 客户必须遵守这一设置。

常数值:“shortcutSupport”

SHORTCUT_SUPPORT_DATA_ITEMS_ONLY

Added in API level 11
int SHORTCUT_SUPPORT_DATA_ITEMS_ONLY

一个 SHORTCUT_SUPPORT设置,指示该目录允许为电子邮件,电话或邮政地址等数据项创建快捷方式,但不允许为整个联系人创建快捷方式。

常数值:1(0x00000001)

SHORTCUT_SUPPORT_FULL

Added in API level 11
int SHORTCUT_SUPPORT_FULL

一个 SHORTCUT_SUPPORT设置,指示该目录允许创建联系人快捷方式及其组成元素。

常量值:2(0x00000002)

SHORTCUT_SUPPORT_NONE

Added in API level 11
int SHORTCUT_SUPPORT_NONE

指示该目录不允许为其联系人创建任何快捷方式的 SHORTCUT_SUPPORT设置。

常量值:0(0x00000000)

TYPE_RESOURCE_ID

Added in API level 11
String TYPE_RESOURCE_ID

在包 PACKAGE_NAME的上下文中捕获为资源ID的目录类型,例如“公司目录”

TYPE:INTEGER

常量值:“typeResourceId”

Fields

CONTENT_URI

Added in API level 11
Uri CONTENT_URI

该表格的内容://样式URI。 可以在UI线程上执行对此URI的请求,因为它们总是解除阻止。

ENTERPRISE_CONTENT_URI

Added in API level 24
Uri ENTERPRISE_CONTENT_URI

用于从主要和托管配置文件获取所有目录的URI。 它支持与CONTENT_URI相同的语义并返回相同的列。 如果设备没有链接到当前配置文件的托管配置文件,则它的行为方式与CONTENT_URI 如果托管配置文件链接到当前配置文件,它将合并托管配置文件和当前配置文件的结果和返回。 注意:此查询返回管理配置文件结果之前的主要配置文件结果,并且此顺序不受排序参数的影响。

Public methods

isEnterpriseDirectoryId

Added in API level 24
boolean isEnterpriseDirectoryId (long directoryId)

如果目录ID来自企业档案中的联系人提供程序,则返回TRUE。

Parameters
directoryId long
Returns
boolean

isRemoteDirectoryId

Added in API level 24
boolean isRemoteDirectoryId (long directoryId)

如果它是远程存储的目录,则返回TRUE。

Parameters
directoryId long
Returns
boolean

notifyDirectoryChange

Added in API level 11
void notifyDirectoryChange (ContentResolver resolver)

通知系统由特定目录提供程序处理的目录列表中的更改。 联系人提供程序将转向并向目录提供程序发送一个查询以获取完整目录列表,这将取代以前的列表。

Parameters
resolver ContentResolver

Hooray!