ContactsContract.Directory Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Um Diretório representa um corpus de contatos, por exemplo,
[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
- Herança
- Atributos
Comentários
Um Diretório representa um corpus de contatos, por exemplo, contatos locais, Lista de Endereços Global do Google Apps ou Lista de Endereços Globais Corporativos.
Um diretório é implementado como um provedor de conteúdo com sua autoridade exclusiva e a mesma API que o provedor de contatos principal. No entanto, não há nenhuma expectativa de que todos os provedores de diretório implementem esse Contrato em sua totalidade. Se um provedor de diretório não tiver uma implementação para uma solicitação específica, ele deverá gerar um UnsupportedOperationException.
O caso de uso mais importante para Diretórios é a pesquisa. Espera-se que um provedor de diretório dê suporte pelo menos ContactsContract.Contacts#CONTENT_FILTER_URI Contacts.CONTENT_FILTER_URI. Se um provedor de Diretório quiser participar das funcionalidades de pesquisa de email e telefone, ele também deverá implementar CommonDataKinds.Email#CONTENT_FILTER_URI CommonDataKinds.Email.CONTENT_FILTER_URI e CommonDataKinds.Phone#CONTENT_FILTER_URI CommonDataKinds.Phone.CONTENT_FILTER_URI.
Um provedor de diretório deve retornar NULL para cada campo de projeção que não reconhece, em vez de gerar uma exceção. Dessa forma, ele não será interrompido se ContactsContract for estendido com novos campos no futuro.
O cliente interage com um diretório por meio do Provedor de Contatos fornecendo um parâmetro de consulta opcional directory= .
Quando o Provedor de Contatos recebe a solicitação, ele transforma o URI e encaminha a solicitação para o provedor de conteúdo de diretório correspondente. O URI é transformado da seguinte maneira: <ul><li>A autoridade de URI é substituída pelo correspondente#DIRECTORY_AUTHORITY.</li><li>O accountName= parâmetro e os accountType= parâmetros são adicionados ou substituídos usando os valores e #ACCOUNT_TYPE os correspondentes#ACCOUNT_NAME.</li></ul>
Os clientes devem enviar solicitações de diretório para o Provedor de Contatos e deixá-lo encaminhá-los para os respectivos provedores em vez de construir URIs do provedor de diretório sozinhos. Esse nível de indireção permite que o Provedor de Contatos implemente recursos e otimizações adicionais no nível do sistema. O acesso ao Provedor de Contatos é protegido pela permissão READ_CONTACTS, mas o acesso ao provedor de diretório é protegido por BIND_DIRECTORY_SEARCH. Essa permissão foi introduzida no nível 17 da API, para versões anteriores da plataforma, o provedor deve executar a seguinte verificação para verificar se a chamada está vindo do 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>
A tabela Diretório é somente leitura e é mantida pelo Provedor de Contatos automaticamente.
Ele sempre tem pelo menos essas duas linhas: <ul><li> O diretório local. Ele tem Directory#_ID Directory._ID = Directory#DEFAULT Directory.DEFAULT. Esse diretório pode ser usado para acessar contatos armazenados localmente. O mesmo pode ser obtido omitindo o directory= parâmetro completamente.
</li><li> Os contatos invisíveis locais. A ID do diretório correspondente é Directory#LOCAL_INVISIBLE Directory.LOCAL_INVISIBLE.
</li></ul>
Os Diretórios Personalizados são descobertos pelo Provedor de Contatos seguindo este procedimento: <ul><li>Ele localiza todos os provedores de conteúdo instalados com metadados identificando-os como provedores de diretório no AndroidManifest.xml: <meta-data android:name="android.content.ContactDirectory" android:value="true" />
Essa marca deve ser colocada dentro da declaração do provedor de conteúdo correspondente.
</li li><> Em seguida, o Provedor de Contatos envia uma consulta para cada uma Directory#CONTENT_URI Directory.CONTENT_URI das autoridades de diretório. Um provedor de diretório deve implementar essa consulta e retornar uma lista de diretórios. Cada diretório retornado pelo provedor deve ter uma combinação exclusiva para as #ACCOUNT_NAME colunas ( #ACCOUNT_TYPE nulos são permitidos). Como as IDs de diretório são atribuídas automaticamente, o campo _ID não fará parte da projeção de consulta.
</li li><>Contacts Provider compila listas de diretórios recebidas de todos os provedores de diretório em um, atribui a cada diretório individual uma ID global exclusiva e armazena todos os registros de diretório na tabela Diretório.
</li></ul></p>
O Provedor de Contatos interroga automaticamente pacotes recém-instalados ou substituídos. Portanto, simplesmente instalar um pacote que contém um provedor de diretório é suficiente para que esse provedor seja registrado. Um pacote que fornece um provedor de diretório não precisa conter atividades inicializáveis.
Cada linha na tabela Diretório é automaticamente associada ao pacote correspondente (apk). Se o pacote for desinstalado posteriormente, todas as linhas de diretório correspondentes serão removidas automaticamente do Provedor de Contatos.
Quando a lista de diretórios tratados por um provedor de diretório é alterada (por exemplo, quando o usuário adiciona uma nova conta de Diretório), o provedor de diretório deve chamar #notifyDirectoryChange para notificar o Provedor de Contatos da alteração. Em resposta, o Provedor de Contatos requer o provedor de diretório para obter a nova lista de diretórios.
Uma linha de diretório pode ser opcionalmente associada a uma conta existente (consulte android.accounts.AccountManager). Se a conta for removida posteriormente, as linhas de diretório correspondentes serão removidas automaticamente do Provedor de Contatos.
Java documentação para android.provider.ContactsContract.Directory.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.
Campos
| Nome | Description |
|---|---|
| AccountName |
A conta com a qual esse diretório está associado. |
| AccountType |
O tipo de conta que esse diretório está associado. |
| CallerPackageParamKey |
Um parâmetro de consulta que é passado para provedores de diretório que indica o nome do pacote do cliente que fez as solicitações de consulta. |
| ContentItemType |
O tipo MIME de um |
| ContentType |
O tipo MIME de |
| Default |
_ID do diretório padrão, que representa contatos armazenados localmente. |
| DirectoryAuthority |
A autoridade do Provedor de Diretório. |
| DisplayName |
Um nome opcional que pode ser usado na interface do usuário para representar esse diretório, e. |
| EnterpriseDefault |
_ID do diretório padrão do perfil gerenciado, que representa contatos armazenados localmente. |
| EnterpriseLocalInvisible |
_ID do diretório de perfil gerenciado que representa contatos invisíveis armazenados localmente. |
| ExportSupport |
Um dos |
| ExportSupportAnyAccount |
Obsoleto.
Uma |
| ExportSupportNone |
Obsoleto.
Uma |
| ExportSupportSameAccountOnly |
Obsoleto.
Uma |
| LocalInvisible |
_ID do diretório que representa contatos invisíveis armazenados localmente. |
| PackageName |
O nome do pacote que possui esse diretório. |
| PhotoSupport |
Um dos |
| PhotoSupportFull |
Obsoleto.
Uma |
| PhotoSupportFullSizeOnly |
Obsoleto.
Uma |
| PhotoSupportNone |
Obsoleto.
Uma |
| PhotoSupportThumbnailOnly |
Obsoleto.
Uma |
| ShortcutSupport |
Um dos |
| ShortcutSupportDataItemsOnly |
Obsoleto.
Uma |
| ShortcutSupportFull |
Obsoleto.
Uma |
| ShortcutSupportNone |
Obsoleto.
Uma |
| TypeResourceId |
O tipo de diretório capturado como uma ID de recurso no contexto do pacote |
Propriedades
| Nome | Description |
|---|---|
| Class |
Retorna a classe de runtime deste |
| ContentUri |
O URI de estilo content:// para esta tabela. |
| EnterpriseContentUri |
URI usado para obter todos os diretórios do usuário de chamada e do perfil gerenciado que está vinculado a ele. |
| Handle |
O identificador para a instância subjacente do Android. (Herdado de Object) |
| JniIdentityHashCode |
Obtém o código de hash de identidade atribuído a esse par Java pelo runtime de interoperabilidade. (Herdado de Object) |
| JniManagedPeerState |
Um Diretório representa um corpus de contatos, por exemplo, (Herdado de JavaObject) |
| JniPeerMembers |
Um Diretório representa um corpus de contatos, por exemplo, |
| PeerReference |
Obtém a referência de objeto JNI para este par Java. (Herdado de Object) |
| ThresholdClass |
Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código. (Herdado de Object) |
| ThresholdType |
Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código. (Herdado de Object) |
Métodos
| Nome | Description |
|---|---|
| Clone() |
Cria e retorna uma cópia desse objeto. (Herdado de Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Um Diretório representa um corpus de contatos, por exemplo, (Herdado de JavaObject) |
| Dispose() |
Libera os recursos mantidos por esse par Java. (Herdado de Object) |
| Dispose(Boolean) |
Libera os recursos mantidos por esse par Java. (Herdado de Object) |
| DisposeUnlessReferenced() |
Um Diretório representa um corpus de contatos, por exemplo, (Herdado de JavaObject) |
| Equals(Object) |
Um Diretório representa um corpus de contatos, por exemplo, (Herdado de JavaObject) |
| Equals(Object) |
Indica se algum outro objeto é "igual a" este. (Herdado de Object) |
| GetHashCode() |
Retorna um valor de código hash para o objeto. (Herdado de Object) |
| IsEnterpriseDirectoryId(Int64) |
Retorne TRUE se uma ID de diretório for do provedor de contatos no perfil da empresa. |
| IsRemoteDirectoryId(Int64) |
Retorne TRUE se for um diretório armazenado remoto. |
| JavaFinalize() |
Chamado pelo coletor de lixo em um objeto quando a coleta de lixo determina que não há mais referências ao objeto. (Herdado de Object) |
| Notify() |
Ativa um único thread que está aguardando no monitor deste objeto. (Herdado de Object) |
| NotifyAll() |
Ativa todos os threads que estão aguardando no monitor deste objeto. (Herdado de Object) |
| NotifyDirectoryChange(ContentResolver) |
Notifica o sistema de uma alteração na lista de diretórios tratados por um provedor de diretório específico. |
| SetHandle(IntPtr, JniHandleOwnership) |
Define a propriedade Handle (Herdado de Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Um Diretório representa um corpus de contatos, por exemplo, (Herdado de JavaObject) |
| ToArray<T>() |
Cria uma matriz gerenciada com base nesse wrapper de matriz Java. (Herdado de Object) |
| ToString() |
Retorna uma representação de cadeia de caracteres do objeto. (Herdado de Object) |
| UnregisterFromRuntime() |
Cancela o registro desse par Java do runtime de interoperabilidade. (Herdado de Object) |
| Wait() |
Faz com que o thread atual aguarde até ser despertado, normalmente por ser <notificado/em> ou <em>interrompido</em>.<> (Herdado de Object) |
| Wait(Int64, Int32) |
Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido. (Herdado de Object) |
| Wait(Int64) |
Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido. (Herdado de Object) |
Implantações explícitas de interface
| Nome | Description |
|---|---|
| IJavaPeerable.Disposed() |
Um Diretório representa um corpus de contatos, por exemplo, (Herdado de JavaObject) |
| IJavaPeerable.Finalized() |
Um Diretório representa um corpus de contatos, por exemplo, (Herdado de JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Um Diretório representa um corpus de contatos, por exemplo, (Herdado de JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Um Diretório representa um corpus de contatos, por exemplo, (Herdado de JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Um Diretório representa um corpus de contatos, por exemplo, (Herdado de JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Um Diretório representa um corpus de contatos, por exemplo, (Herdado de JavaObject) |
Métodos de Extensão
| Nome | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtém o nome JNI do tipo da instância |
| JavaAs<TResult>(IJavaPeerable) |
Tente coagir a digitar |
| JavaCast<TResult>(IJavaObject) |
Executa uma conversão de tipo marcada por runtime do Android. |
| JavaCast<TResult>(IJavaObject) |
Um Diretório representa um corpus de contatos, por exemplo, |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Tente coagir a digitar |