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 или глобальный корпоративный список адресов.

Каталог реализуется как поставщик содержимого с уникальными полномочиями и тем же API, что и поставщик контактов main. Однако нет никаких ожиданий, что каждый поставщик каталогов будет реализовывать этот контракт в полном объеме. Если у поставщика каталогов нет реализации для определенного запроса, он должен вызвать исключение UnsupportedOperationException.

Наиболее важным вариантом использования каталогов является поиск. Ожидается, что поставщик каталогов будет поддерживать по крайней мере ContactsContract.Contacts#CONTENT_FILTER_URI Contacts.CONTENT_FILTER_URI. Если поставщик каталогов хочет участвовать в функциях поиска по электронной почте и телефону, он также должен реализовать CommonDataKinds.Email#CONTENT_FILTER_URI CommonDataKinds.Email.CONTENT_FILTER_URI и CommonDataKinds.Phone#CONTENT_FILTER_URI CommonDataKinds.Phone.CONTENT_FILTER_URI.

Поставщик каталога должен возвращать значение NULL для каждого не распознаваемого поля проекции, а не создавать исключение. Таким образом, он не будет нарушен, если ContactsContract будет расширен новыми полями в будущем.

Клиент взаимодействует с каталогом через поставщика контактов, предоставляя необязательный directory= параметр запроса.

Когда поставщик контактов получает запрос, он преобразует URI и перенаправит запрос соответствующему поставщику содержимого каталога. Универсальный код ресурса (URI) преобразуется следующим образом: <ul><li>. Центр URI заменяется соответствующим #DIRECTORY_AUTHORITY.</li><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 —> локальные невидимые контакты. Соответствующий идентификатор каталога — 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_NAME и #ACCOUNT_TYPE (допускаются значения NULL). Так как идентификаторы каталогов назначаются автоматически, поле _ID не будет частью проекции запроса. <Поставщик контактов /li><li>компилирует списки каталогов, полученные от всех поставщиков каталогов, в один, присваивает каждому отдельному каталогу глобальный уникальный идентификатор и сохраняет все записи каталога в таблице Directory. </li></ul></p>

Поставщик контактов автоматически запрашивает новые установленные или замененные пакеты. Таким образом, достаточно просто установить пакет, содержащий поставщика каталогов, чтобы зарегистрировать этого поставщика. Пакет, предоставляющий поставщик каталогов, не должен содержать запускаемые действия.

Каждая строка в таблице Каталог автоматически связывается с соответствующим пакетом (apk). При последующем удалении пакета все соответствующие строки каталога автоматически удаляются из поставщика контактов.

При изменении списка каталогов, обрабатываемых поставщиком каталогов (например, при добавлении пользователем новой учетной записи каталога), поставщик каталогов должен вызвать , #notifyDirectoryChange чтобы уведомить поставщика контактов об изменении. В ответ поставщик контактов запросит у поставщика каталогов новый список каталогов.

При необходимости строку каталога можно связать с существующей учетной записью (см. android.accounts.AccountManager). Если учетная запись будет удалена позже, соответствующие строки каталога автоматически удаляются из поставщика контактов.

Документация по Java для android.provider.ContactsContract.Directory.

Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом Android и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License.

Поля

AccountName

Учетная запись, с которой связан этот каталог.

AccountType

Тип учетной записи, с которой связан этот каталог.

CallerPackageParamKey

Параметр запроса, передаваемый поставщикам каталогов, который указывает имя пакета клиента, который сделал запросы.

ContentItemType

Тип #CONTENT_URI MIME элемента.

ContentType

Тип MIME для предоставления #CONTENT_URI каталога контактов.

Default

_ID каталога по умолчанию, представляющего локально хранящиеся контакты.

DirectoryAuthority

Полномочия поставщика каталогов.

DisplayName

Необязательное имя, которое можно использовать в пользовательском интерфейсе для представления этого каталога, 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, e.

Свойства

Class

Возвращает класс среды выполнения данного объекта Object.

(Унаследовано от Object)
ContentUri

URI стиля content:// для этой таблицы.

EnterpriseContentUri

URI, используемый для получения всех каталогов как от вызывающего пользователя, так и от связанного с ним управляемого профиля.

Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
JniIdentityHashCode

Каталог представляет собой корпус контактов, e.

(Унаследовано от Object)
JniPeerMembers

Каталог представляет собой корпус контактов, e.

PeerReference

Каталог представляет собой корпус контактов, e.

(Унаследовано от Object)
ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

(Унаследовано от Object)
ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

(Унаследовано от Object)

Методы

Clone()

Создает и возвращает копию этого объекта.

(Унаследовано от Object)
Dispose()

Каталог представляет собой корпус контактов, e.

(Унаследовано от Object)
Dispose(Boolean)

Каталог представляет собой корпус контактов, e.

(Унаследовано от Object)
Equals(Object)

Указывает, равен ли какой-то другой объект этому объекту.

(Унаследовано от Object)
GetHashCode()

Возвращает значение хэш-кода для объекта.

(Унаследовано от Object)
IsEnterpriseDirectoryId(Int64)

Возвращает значение 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()

Вызывает ожидание текущего потока, пока он не пробудится, как правило, из-за <уведомления><<> или>прерывания или прерывания.><

(Унаследовано от Object)
Wait(Int64)

Вызывает ожидание текущего потока, пока он не пробудится, как правило, путем <уведомления><<> или>прерывания или прерывания<> или до истечения определенного количества реального времени.

(Унаследовано от Object)
Wait(Int64, Int32)

Вызывает ожидание текущего потока, пока он не пробудится, как правило, путем <уведомления><<> или>прерывания или прерывания<> или до истечения определенного количества реального времени.

(Унаследовано от 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.

Применяется к