ContactsContract.Directory Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- 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: <meta-data android:name="android.content.ContactDirectory" android:value="true" />
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 |
ContentType |
Tipo de MIME que |
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 |
ExportSupportAnyAccount |
Obsoletos.
Configuración |
ExportSupportNone |
Obsoletos.
Una |
ExportSupportSameAccountOnly |
Obsoletos.
Valor |
LocalInvisible |
_ID del directorio que representa contactos invisibles almacenados localmente. |
PackageName |
Nombre del paquete que posee este directorio. |
PhotoSupport |
Uno de |
PhotoSupportFull |
Obsoletos.
Configuración |
PhotoSupportFullSizeOnly |
Obsoletos.
Una |
PhotoSupportNone |
Obsoletos.
Configuración |
PhotoSupportThumbnailOnly |
Obsoletos.
Una |
ShortcutSupport |
Uno de |
ShortcutSupportDataItemsOnly |
Obsoletos.
Configuración |
ShortcutSupportFull |
Obsoletos.
Valor |
ShortcutSupportNone |
Obsoletos.
Valor |
TypeResourceId |
Tipo de directorio capturado como identificador de recurso en el contexto del paquete |
Propiedades
Class |
Devuelve la clase en tiempo de ejecución de este |
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. |