Lingua

ContactsContract.Directory Classe

Definizione

Una directory rappresenta un corpus di contatti, 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
Ereditarietà
ContactsContract.Directory
Attributi

Commenti

Una directory rappresenta un insieme di contatti, ad esempio contatti locali, elenco indirizzi globali di Google Apps o elenco indirizzi globali aziendali.

Una directory viene implementata come provider di contenuti con l'autorità univoca e la stessa API del provider contatti principale. Tuttavia, non ci si aspetta che ogni provider di directory implementi il contratto nel suo complesso. Se un provider di directory non dispone di un'implementazione per una richiesta specifica, deve generare un'eccezione UnsupportedOperationException.

Il caso d'uso più importante per le directory è la ricerca. È previsto che un provider di directory supporti almeno ContactsContract.Contacts#CONTENT_FILTER_URI Contacts.CONTENT_FILTER_URI. Se un provider di directory vuole partecipare alle funzionalità di ricerca tramite posta elettronica e telefono, deve implementare CommonDataKinds.Email#CONTENT_FILTER_URI CommonDataKinds.Email.CONTENT_FILTER_URI e CommonDataKinds.Phone#CONTENT_FILTER_URI CommonDataKinds.Phone.CONTENT_FILTER_URI.

Un provider di directory deve restituire NULL per ogni campo di proiezione che non riconosce, anziché generare un'eccezione. In questo modo non verrà interrotto se ContactsContract viene esteso con nuovi campi in futuro.

Il client interagisce con una directory tramite il provider contatti fornendo un parametro di query facoltativo directory= .

Quando il provider contatti riceve la richiesta, trasforma l'URI e inoltra la richiesta al provider di contenuto della directory corrispondente. L'URI viene trasformato nel modo seguente: <ul><li>L'autorità URI viene sostituita con l'oggetto corrispondente#DIRECTORY_AUTHORITY.</li><li>I accountName= parametri e accountType= vengono aggiunti o sostituiti usando i valori e #ACCOUNT_TYPE corrispondenti#ACCOUNT_NAME.</li></ul>

I client devono inviare richieste di directory al provider contatti e consentire loro di inoltrarle ai rispettivi provider anziché costruire gli URI del provider di directory autonomamente. Questo livello di riferimento indiretto consente al provider di contatti di implementare funzionalità e ottimizzazioni aggiuntive a livello di sistema. L'accesso al provider contatti è protetto dall'autorizzazione READ_CONTACTS, ma l'accesso al provider di directory è protetto da BIND_DIRECTORY_SEARCH. Questa autorizzazione è stata introdotta al livello API 17, per le versioni precedenti della piattaforma il provider deve eseguire il controllo seguente per assicurarsi che la chiamata provena da 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 tabella Directory è di sola lettura e viene gestita automaticamente dal provider contatti.

Contiene sempre almeno queste due righe: <ul><li> La directory locale. Ha Directory#_ID Directory._ID = Directory#DEFAULT Directory.DEFAULT. Questa directory può essere usata per accedere ai contatti archiviati in locale. È possibile ottenere lo stesso risultato omettendo completamente il directory= parametro . </li li><> I contatti invisibili locali. L'ID della directory corrispondente è Directory#LOCAL_INVISIBLE Directory.LOCAL_INVISIBLE. </li></ul>

Le directory personalizzate vengono individuate dal provider contatti seguendo questa procedura: <ul><li>Trova tutti i provider di contenuti installati con metadati che li identificano come provider di directory in AndroidManifest.xml: &lt;meta-data android:name="android.content.ContactDirectory" android:value="true" /&gt;

Questo tag deve essere inserito all'interno della dichiarazione del provider di contenuti corrispondente.

</li><li> Then Contacts Provider invia una Directory#CONTENT_URI Directory.CONTENT_URI query a ognuna delle autorità di directory. Un provider di directory deve implementare questa query e restituire un elenco di directory. Ogni directory restituita dal provider deve avere una combinazione univoca per le #ACCOUNT_NAME colonne e #ACCOUNT_TYPE (sono consentiti valori Null). Poiché gli ID directory vengono assegnati automaticamente, il campo _ID non farà parte della proiezione della query. </li><li>Contacts Provider compila gli elenchi di directory ricevuti da tutti i provider di directory in uno, assegna a ogni singola directory un ID univoco globale e archivia tutti i record di directory nella tabella Directory. </li></ul></p>

Contacts Provider interroga automaticamente i pacchetti appena installati o sostituiti. L'installazione di un pacchetto contenente un provider di directory è quindi sufficiente per la registrazione di tale provider. Un pacchetto che fornisce un provider di directory non deve contenere attività avviabili.

Ogni riga nella tabella Directory viene associata automaticamente al pacchetto corrispondente (apk). Se il pacchetto viene disinstallato in un secondo momento, tutte le righe di directory corrispondenti vengono rimosse automaticamente dal provider contatti.

Quando l'elenco delle directory gestite da un provider di directory cambia (ad esempio quando l'utente aggiunge un nuovo account directory), il provider di directory deve chiamare #notifyDirectoryChange per notificare al provider contatti la modifica. In risposta, il provider contatti rieseguirà una query sul provider di directory per ottenere il nuovo elenco di directory.

Una riga di directory può essere facoltativamente associata a un account esistente (vedere android.accounts.AccountManager). Se l'account viene rimosso in un secondo momento, le righe di directory corrispondenti vengono rimosse automaticamente dal provider contatti.

per android.provider.ContactsContract.Directory.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Campi

Nome Descrizione
AccountName

Account a cui è associata la directory.

AccountType

Tipo di account associato alla directory.

CallerPackageParamKey

Parametro di query passato ai provider di directory che indica il nome del pacchetto client che ha effettuato le richieste di query.

ContentItemType

Tipo MIME di un #CONTENT_URI elemento.

ContentType

Tipo MIME di specificare #CONTENT_URI una directory di directory dei contatti.

Default

_ID della directory predefinita, che rappresenta i contatti archiviati in locale.

DirectoryAuthority

Autorità del provider di directory.

DisplayName

Nome facoltativo che può essere usato nell'interfaccia utente per rappresentare questa directory, e.

EnterpriseDefault

_ID della directory predefinita del profilo gestito, che rappresenta i contatti archiviati in locale.

EnterpriseLocalInvisible

_ID della directory del profilo gestito che rappresenta i contatti invisibili archiviati in locale.

ExportSupport

Uno di #EXPORT_SUPPORT_NONE, #EXPORT_SUPPORT_ANY_ACCOUNT, #EXPORT_SUPPORT_SAME_ACCOUNT_ONLY.

ExportSupportAnyAccount
Obsoleti.

Impostazione #EXPORT_SUPPORT che indica che la directory consente la copia dei dati in qualsiasi account contatti.

ExportSupportNone
Obsoleti.

Impostazione #EXPORT_SUPPORT che indica che la directory non consente la copia di dati.

ExportSupportSameAccountOnly
Obsoleti.

Impostazione #EXPORT_SUPPORT che indica che la directory consente la copia dei dati solo nell'account specificato da#ACCOUNT_TYPE/#ACCOUNT_NAME .

LocalInvisible

_ID della directory che rappresenta i contatti invisibili archiviati in locale.

PackageName

Nome del pacchetto proprietario di questa directory.

PhotoSupport

Uno di #PHOTO_SUPPORT_NONE, #PHOTO_SUPPORT_THUMBNAIL_ONLY, #PHOTO_SUPPORT_FULL.

PhotoSupportFull
Obsoleti.

Impostazione #PHOTO_SUPPORT che indica che la directory può produrre anteprime e foto di contatto a dimensioni intere.

PhotoSupportFullSizeOnly
Obsoleti.

Impostazione #PHOTO_SUPPORT che indica che la directory ha foto di contatto a dimensioni intere, ma non può fornire anteprime ridimensionate.

PhotoSupportNone
Obsoleti.

Impostazione #PHOTO_SUPPORT che indica che la directory non fornisce foto.

PhotoSupportThumbnailOnly
Obsoleti.

Impostazione #PHOTO_SUPPORT che indica che la directory può produrre solo anteprime di piccole dimensioni delle foto di contatto.

ShortcutSupport

Uno di #SHORTCUT_SUPPORT_NONE, #SHORTCUT_SUPPORT_DATA_ITEMS_ONLY, #SHORTCUT_SUPPORT_FULL.

ShortcutSupportDataItemsOnly
Obsoleti.

Impostazione #SHORTCUT_SUPPORT che indica che la directory consente la creazione di collegamenti per elementi di dati come posta elettronica, telefono o indirizzo postale, ma non l'intero contatto.

ShortcutSupportFull
Obsoleti.

Impostazione #SHORTCUT_SUPPORT che indica che la directory consente la creazione di collegamenti per il contatto e i relativi elementi costitutivi.

ShortcutSupportNone
Obsoleti.

Impostazione #SHORTCUT_SUPPORT che indica che la directory non consente collegamenti creati per i contatti.

TypeResourceId

Tipo di directory acquisito come ID risorsa nel contesto del pacchetto #PACKAGE_NAME, e.

Proprietà

Nome Descrizione
Class

Restituisce la classe di runtime di questo Objectoggetto .

(Ereditato da Object)
ContentUri

URI di stile content:// per questa tabella.

EnterpriseContentUri

URI usato per ottenere tutte le directory sia dall'utente chiamante che dal profilo gestito collegato.

Handle

Handle per l'istanza di Android sottostante.

(Ereditato da Object)
JniIdentityHashCode

Ottiene il codice hash di identità assegnato a questo Java peer dal runtime di interoperabilità.

(Ereditato da Object)
JniManagedPeerState

Una directory rappresenta un corpus di contatti, e.

(Ereditato da JavaObject)
JniPeerMembers

Ottiene i metadati JNI usati per accedere ai membri di questa associazione Java.

PeerReference

Ottiene il riferimento all'oggetto JNI per questo peer Java.

(Ereditato da Object)
ThresholdClass

Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice.

(Ereditato da Object)
ThresholdType

Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice.

(Ereditato da Object)

Metodi

Nome Descrizione
Clone()

Crea e restituisce una copia di questo oggetto.

(Ereditato da Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

Una directory rappresenta un corpus di contatti, e.

(Ereditato da JavaObject)
Dispose()

Rilascia le risorse contenute in questo peer Java.

(Ereditato da Object)
Dispose(Boolean)

Rilascia le risorse contenute in questo peer Java.

(Ereditato da Object)
DisposeUnlessReferenced()

Una directory rappresenta un corpus di contatti, e.

(Ereditato da JavaObject)
Equals(Object)

Una directory rappresenta un corpus di contatti, e.

(Ereditato da JavaObject)
Equals(Object)

Indica se un altro oggetto è "uguale a" questo.

(Ereditato da Object)
GetHashCode()

Restituisce un valore di codice hash per l'oggetto .

(Ereditato da Object)
IsEnterpriseDirectoryId(Int64)

Restituisce TRUE se un ID directory proviene dal provider di contatti nel profilo aziendale.

IsRemoteDirectoryId(Int64)

Restituisce TRUE se si tratta di una directory archiviata remota.

JavaFinalize()
Obsoleti.

Chiamato dal Garbage Collector su un oggetto quando Garbage Collection determina che non sono presenti altri riferimenti all'oggetto .

(Ereditato da Object)
Notify()

Riattiva un singolo thread in attesa del monitor dell'oggetto.

(Ereditato da Object)
NotifyAll()

Riattiva tutti i thread in attesa del monitor dell'oggetto.

(Ereditato da Object)
NotifyDirectoryChange(ContentResolver)

Notifica al sistema di una modifica nell'elenco delle directory gestite da un provider di directory specifico.

SetHandle(IntPtr, JniHandleOwnership)

Imposta la proprietà Handle.

(Ereditato da Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Una directory rappresenta un corpus di contatti, e.

(Ereditato da JavaObject)
ToArray<T>()

Crea una matrice gestita da questo wrapper di matrice Java.

(Ereditato da Object)
ToString()

Restituisce una rappresentazione di stringa dell'oggetto .

(Ereditato da Object)
UnregisterFromRuntime()

Annulla la registrazione di questo Java peer dal runtime di interoperabilità.

(Ereditato da Object)
Wait()

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo <>una notifica</em> o <em>interrotto</em>.

(Ereditato da Object)
Wait(Int64, Int32)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo<> una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale.

(Ereditato da Object)
Wait(Int64)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo<> una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

Nome Descrizione
IJavaPeerable.Disposed()

Una directory rappresenta un corpus di contatti, e.

(Ereditato da JavaObject)
IJavaPeerable.Finalized()

Una directory rappresenta un corpus di contatti, e.

(Ereditato da JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Una directory rappresenta un corpus di contatti, e.

(Ereditato da JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Una directory rappresenta un corpus di contatti, e.

(Ereditato da JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Una directory rappresenta un corpus di contatti, e.

(Ereditato da JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Una directory rappresenta un corpus di contatti, e.

(Ereditato da JavaObject)

Metodi di estensione

Nome Descrizione
GetJniTypeName(IJavaPeerable)

Ottiene il nome JNI del tipo dell'istanza selfdi .

JavaAs<TResult>(IJavaPeerable)

Provare a digitare selfTResult, verificando che la coercizione sia valida sul lato Java.

JavaCast<TResult>(IJavaObject)

Esegue una conversione del tipo di tipo controllato dal runtime Android.

JavaCast<TResult>(IJavaObject)

Una directory rappresenta un corpus di contatti, e.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Provare a digitare selfTResult, verificando che la coercizione sia valida sul lato Java.

Si applica a