ContactsContract.Directory Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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à
- 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: <meta-data android:name="android.content.ContactDirectory" android:value="true" />
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 |
| ContentType |
Tipo MIME di specificare |
| 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 |
| ExportSupportAnyAccount |
Obsoleti.
Impostazione |
| ExportSupportNone |
Obsoleti.
Impostazione |
| ExportSupportSameAccountOnly |
Obsoleti.
Impostazione |
| LocalInvisible |
_ID della directory che rappresenta i contatti invisibili archiviati in locale. |
| PackageName |
Nome del pacchetto proprietario di questa directory. |
| PhotoSupport |
Uno di |
| PhotoSupportFull |
Obsoleti.
Impostazione |
| PhotoSupportFullSizeOnly |
Obsoleti.
Impostazione |
| PhotoSupportNone |
Obsoleti.
Impostazione |
| PhotoSupportThumbnailOnly |
Obsoleti.
Impostazione |
| ShortcutSupport |
Uno di |
| ShortcutSupportDataItemsOnly |
Obsoleti.
Impostazione |
| ShortcutSupportFull |
Obsoleti.
Impostazione |
| ShortcutSupportNone |
Obsoleti.
Impostazione |
| TypeResourceId |
Tipo di directory acquisito come ID risorsa nel contesto del pacchetto |
Proprietà
| Nome | Descrizione |
|---|---|
| Class |
Restituisce la classe di runtime di questo |
| 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 |
| JavaAs<TResult>(IJavaPeerable) |
Provare a digitare |
| 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 |