ContactsContract.Directory Clase

Definición

Un directorio representa un corpus de contactos, 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
Herencia
ContactsContract.Directory
Atributos

Comentarios

Un directorio representa un corpus de contactos, por ejemplo, contactos locales, lista global de direcciones de Google Apps o lista de direcciones globales corporativas.

Un directorio se implementa como proveedor de contenido con su autoridad única y la misma API que el proveedor de contactos principal. Sin embargo, no hay ninguna expectativa de que cada proveedor de directorios implemente este Contrato en su totalidad. Si un proveedor de directorios no tiene una implementación para una solicitud específica, debe iniciar una excepción UnsupportedOperationException.

El caso de uso más importante para directorios es la búsqueda. Se espera que un proveedor de directorio admita al menos ContactsContract.Contacts#CONTENT_FILTER_URI Contacts.CONTENT_FILTER_URI. Si un proveedor de directorios quiere participar en las funcionalidades de búsqueda de correo electrónico y teléfono, también debe implementar CommonDataKinds.Email#CONTENT_FILTER_URI CommonDataKinds.Email.CONTENT_FILTER_URI y CommonDataKinds.Phone#CONTENT_FILTER_URI CommonDataKinds.Phone.CONTENT_FILTER_URI.

Un proveedor de directorios debe devolver NULL para cada campo de proyección que no reconoce, en lugar de iniciar una excepción. De este modo, no se romperá si ContactsContract se extiende con nuevos campos en el futuro.

El cliente interactúa con un directorio a través del proveedor de contactos proporcionando un parámetro de consulta opcional directory= .

Cuando el proveedor de contactos recibe la solicitud, transforma el URI y reenvía la solicitud al proveedor de contenido del directorio correspondiente. El URI se transforma de la siguiente manera: <ul<>li>La autoridad de URI se reemplaza por el correspondiente #DIRECTORY_AUTHORITY.</li><li>Los accountName= parámetros y accountType= se agregan o reemplazan mediante los valores y #ACCOUNT_NAME correspondientes#ACCOUNT_TYPE.</li></ul>

Los clientes deben enviar solicitudes de directorio al proveedor de contactos y permitirles reenviarlos a los respectivos proveedores en lugar de construir los URI del proveedor de directorios por sí mismos. Este nivel de direccionamiento indirecto permite al proveedor de contactos implementar características y optimizaciones de nivel de sistema adicionales. El acceso al proveedor de contactos está protegido por el permiso de READ_CONTACTS, pero el acceso al proveedor de directorios está protegido por BIND_DIRECTORY_SEARCH. Este permiso se introdujo en el nivel de API 17, para las versiones anteriores de la plataforma, el proveedor debe realizar la siguiente comprobación para asegurarse de que la llamada procede de 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>

La tabla Directory es de solo lectura y la mantiene automáticamente el proveedor de contactos.

Siempre tiene al menos estas dos filas: <ul><li> El directorio local. Tiene Directory#_ID Directory._ID = Directory#DEFAULT Directory.DEFAULT. Este directorio se puede usar para acceder a los contactos almacenados localmente. Se puede lograr lo mismo omitiendo el directory= parámetro por completo. </li li><> Los contactos invisibles locales. El identificador de directorio correspondiente es Directory#LOCAL_INVISIBLE Directory.LOCAL_INVISIBLE. </li></ul>

El proveedor de contactos detecta directorios personalizados siguiendo este procedimiento: <ul><li>busca todos los proveedores de contenido instalados con metadatos que los identifican como proveedores de directorios en AndroidManifest.xml: &lt;meta-data android:name="android.content.ContactDirectory" android:value="true" /&gt;

Esta etiqueta debe colocarse dentro de la declaración del proveedor de contenido correspondiente.

</li li><> Entonces el proveedor de contactos envía una Directory#CONTENT_URI Directory.CONTENT_URI consulta a cada una de las autoridades del directorio. Un proveedor de directorios debe implementar esta consulta y devolver una lista de directorios. Cada directorio devuelto por el proveedor debe tener una combinación única para las #ACCOUNT_NAME columnas y #ACCOUNT_TYPE (se permiten valores NULL). Dado que los identificadores de directorio se asignan automáticamente, el campo _ID no formará parte de la proyección de consulta. </li li><>Contacts Provider compila listas de directorios recibidas de todos los proveedores de directorios en uno, asigna a cada directorio individual un identificador único global y almacena todos los registros de directorio en la tabla Directorio. </li></ul></p>

El proveedor de contactos interroga automáticamente los paquetes recién instalados o reemplazados. Por lo tanto, simplemente instalar un paquete que contenga un proveedor de directorios es suficiente para que ese proveedor esté registrado. Un paquete que proporciona un proveedor de directorios no tiene que contener actividades iniciables.

Cada fila de la tabla Directorio se asocia automáticamente con el paquete correspondiente (apk). Si el paquete se desinstala más adelante, todas las filas de directorio correspondientes se quitan automáticamente del proveedor de contactos.

Cuando cambia la lista de directorios administrados por un proveedor de directorios (por ejemplo, cuando el usuario agrega una nueva cuenta de directorio), el proveedor de directorios debe llamar #notifyDirectoryChange a para notificar al proveedor de contactos del cambio. En respuesta, el proveedor de contactos volverá a consultar al proveedor de directorios para obtener la nueva lista de directorios.

Una fila de directorio se puede asociar opcionalmente a una cuenta existente (consulte android.accounts.AccountManager). Si la cuenta se quita más adelante, las filas de directorio correspondientes se quitan automáticamente del proveedor de contactos.

Documentación de Java para android.provider.ContactsContract.Directory.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código y se usan según los términos descritos en la creative Commons 2.5.

Campos

AccountName

Cuenta con la que está asociado este directorio.

AccountType

Tipo de cuenta al que está asociado este directorio.

CallerPackageParamKey

Parámetro de consulta que se pasa a proveedores de directorios que indica el nombre del paquete de cliente que ha realizado las solicitudes de consulta.

ContentItemType

Tipo MIME de un #CONTENT_URI elemento.

ContentType

Tipo de MIME que #CONTENT_URI proporciona un directorio de directorios de contactos.

Default

_ID del directorio predeterminado, que representa los contactos almacenados localmente.

DirectoryAuthority

Autoridad del proveedor de directorios.

DisplayName

Nombre opcional que se puede usar en la interfaz de usuario para representar este directorio, e.

EnterpriseDefault

_ID del directorio predeterminado del perfil administrado, que representa los contactos almacenados localmente.

EnterpriseLocalInvisible

_ID del directorio de perfil administrado que representa contactos invisibles almacenados localmente.

ExportSupport

Uno de #EXPORT_SUPPORT_NONE, , #EXPORT_SUPPORT_SAME_ACCOUNT_ONLY#EXPORT_SUPPORT_ANY_ACCOUNT.

ExportSupportAnyAccount
Obsoletos.

Configuración #EXPORT_SUPPORT que indica que el directorio permite sus datos copiados en cualquier cuenta de contactos.

ExportSupportNone
Obsoletos.

Una #EXPORT_SUPPORT configuración que indica que el directorio no permite copiar ningún dato fuera de él.

ExportSupportSameAccountOnly
Obsoletos.

Valor #EXPORT_SUPPORT que indica que el directorio permite que sus datos copiados solo en la cuenta especificada por/#ACCOUNT_TYPE#ACCOUNT_NAME .

LocalInvisible

_ID del directorio que representa contactos invisibles almacenados localmente.

PackageName

Nombre del paquete que posee este directorio.

PhotoSupport

Uno de #PHOTO_SUPPORT_NONE, , #PHOTO_SUPPORT_FULL#PHOTO_SUPPORT_THUMBNAIL_ONLY.

PhotoSupportFull
Obsoletos.

Configuración #PHOTO_SUPPORT que indica que el directorio puede generar miniaturas, así como fotos de contacto de tamaño completo.

PhotoSupportFullSizeOnly
Obsoletos.

Una #PHOTO_SUPPORT configuración que indica que el directorio tiene fotos de contacto de tamaño completo, pero no puede proporcionar miniaturas escaladas.

PhotoSupportNone
Obsoletos.

Configuración #PHOTO_SUPPORT que indica que el directorio no proporciona ninguna foto.

PhotoSupportThumbnailOnly
Obsoletos.

Una #PHOTO_SUPPORT configuración que indica que el directorio solo puede producir miniaturas de tamaño pequeño de fotos de contacto.

ShortcutSupport

Uno de #SHORTCUT_SUPPORT_NONE, , #SHORTCUT_SUPPORT_FULL#SHORTCUT_SUPPORT_DATA_ITEMS_ONLY.

ShortcutSupportDataItemsOnly
Obsoletos.

Configuración #SHORTCUT_SUPPORT que indica que el directorio permite la creación de accesos directos para elementos de datos como correo electrónico, teléfono o dirección postal, pero no todo el contacto.

ShortcutSupportFull
Obsoletos.

Valor #SHORTCUT_SUPPORT que indica que el directorio permite la creación de accesos directos para el contacto, así como sus elementos constituyentes.

ShortcutSupportNone
Obsoletos.

Valor #SHORTCUT_SUPPORT que indica que el directorio no permite ningún acceso directo creado para sus contactos.

TypeResourceId

Tipo de directorio capturado como identificador de recurso en el contexto del paquete #PACKAGE_NAME, e.

Propiedades

Class

Devuelve la clase en tiempo de ejecución de este Objectobjeto .

(Heredado de Object)
ContentUri

Identificador URI de estilo content:// para esta tabla.

EnterpriseContentUri

URI usado para obtener todos los directorios del usuario que realiza la llamada y el perfil administrado que está vinculado a él.

Handle

Identificador de la instancia de Android subyacente.

(Heredado de Object)
JniIdentityHashCode

Un directorio representa un corpus de contactos, e.

(Heredado de Object)
JniPeerMembers

Un directorio representa un corpus de contactos, e.

PeerReference

Un directorio representa un corpus de contactos, e.

(Heredado de Object)
ThresholdClass

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

(Heredado de Object)
ThresholdType

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

(Heredado de Object)

Métodos

Clone()

Crea y devuelve una copia de este objeto.

(Heredado de Object)
Dispose()

Un directorio representa un corpus de contactos, e.

(Heredado de Object)
Dispose(Boolean)

Un directorio representa un corpus de contactos, e.

(Heredado de Object)
Equals(Object)

Indica si algún otro objeto es "igual a" este.

(Heredado de Object)
GetHashCode()

Devuelve un valor de código hash del objeto.

(Heredado de Object)
IsEnterpriseDirectoryId(Int64)

Devuelve TRUE si un identificador de directorio procede del proveedor de contactos en el perfil de empresa.

IsRemoteDirectoryId(Int64)

Devuelve TRUE si es un directorio almacenado remoto.

JavaFinalize()

Llamado por el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto.

(Heredado de Object)
Notify()

Activa un único subproceso que está esperando en el monitor de este objeto.

(Heredado de Object)
NotifyAll()

Activa todos los subprocesos que están esperando en el monitor de este objeto.

(Heredado de Object)
NotifyDirectoryChange(ContentResolver)

Notifica al sistema un cambio en la lista de directorios administrados por un proveedor de directorios determinado.

SetHandle(IntPtr, JniHandleOwnership)

Establece la propiedad Handle.

(Heredado de Object)
ToArray<T>()

Un directorio representa un corpus de contactos, e.

(Heredado de Object)
ToString()

Devuelve una representación de cadena del objeto.

(Heredado de Object)
UnregisterFromRuntime()

Un directorio representa un corpus de contactos, e.

(Heredado de Object)
Wait()

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser em notificado/em> o <em>interrumpido</em>.<><

(Heredado de Object)
Wait(Int64)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <notificado<>/em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)
Wait(Int64, Int32)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <notificado<>/em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)

Implementaciones de interfaz explícitas

IJavaPeerable.Disposed()

Un directorio representa un corpus de contactos, e.

(Heredado de Object)
IJavaPeerable.DisposeUnlessReferenced()

Un directorio representa un corpus de contactos, e.

(Heredado de Object)
IJavaPeerable.Finalized()

Un directorio representa un corpus de contactos, e.

(Heredado de Object)
IJavaPeerable.JniManagedPeerState

Un directorio representa un corpus de contactos, e.

(Heredado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Un directorio representa un corpus de contactos, e.

(Heredado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Un directorio representa un corpus de contactos, e.

(Heredado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Un directorio representa un corpus de contactos, e.

(Heredado de Object)

Métodos de extensión

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

JavaCast<TResult>(IJavaObject)

Un directorio representa un corpus de contactos, e.

GetJniTypeName(IJavaPeerable)

Un directorio representa un corpus de contactos, e.

Se aplica a