ContactsContract.Directory Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ein Verzeichnis stellt einen Kontaktekorpus dar, 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
- Vererbung
- Attribute
Hinweise
Ein Verzeichnis stellt einen Kontaktkorpus dar, z. B. lokale Kontakte, Globale Adressliste von Google Apps oder globale Unternehmensadressenliste.
Ein Verzeichnis wird als Inhaltsanbieter mit seiner eindeutigen Autorität und derselben API wie der Hauptkontaktanbieter implementiert. Es besteht jedoch keine Erwartung, dass jeder Verzeichnisanbieter diesen Vertrag vollständig implementiert. Wenn ein Verzeichnisanbieter nicht über eine Implementierung für eine bestimmte Anforderung verfügt, sollte ein UnsupportedOperationException ausgelöst werden.
Der wichtigste Anwendungsfall für Verzeichnisse ist die Suche. Es wird erwartet, dass ein Verzeichnisanbieter mindestens ContactsContract.Contacts#CONTENT_FILTER_URI Contacts.CONTENT_FILTER_URIunterstützt wird. Wenn ein Verzeichnisanbieter an E-Mail- und Telefon-Nachschlagefunktionen teilnehmen möchte, sollte er auch implementiert und implementiert CommonDataKinds.Email#CONTENT_FILTER_URI CommonDataKinds.Email.CONTENT_FILTER_URI werden CommonDataKinds.Phone#CONTENT_FILTER_URI CommonDataKinds.Phone.CONTENT_FILTER_URI.
Ein Verzeichnisanbieter sollte NULL für jedes Projektionsfeld zurückgeben, das nicht erkannt wird, anstatt eine Ausnahme zu auslösen. Auf diese Weise wird es nicht unterbrochen, wenn ContactsContract in Zukunft mit neuen Feldern erweitert wird.
Der Client interagiert über den Kontaktanbieter mit einem Verzeichnis, indem er einen optionalen directory= Abfrageparameter angibt.
Wenn der Kontaktanbieter die Anforderung empfängt, transformiert er den URI und leitet die Anforderung an den entsprechenden Verzeichnisinhaltsanbieter weiter. Der URI wird in folgender Weise transformiert: <ul><li>Die URI-Autorität wird durch die entsprechende #DIRECTORY_AUTHORITYersetzt.</li li><>Die accountName= und accountType= die Parameter werden mithilfe der entsprechenden #ACCOUNT_TYPE Werte #ACCOUNT_NAME hinzugefügt oder ersetzt.</li></ul>
Clients sollten Verzeichnisanforderungen an den Kontaktanbieter senden und sie an die jeweiligen Anbieter weiterleiten lassen, anstatt Verzeichnisanbieter-URIs selbst zu erstellen. Diese Dereferenzierungsstufe ermöglicht es dem Kontaktanbieter, zusätzliche Funktionen und Optimierungen auf Systemebene zu implementieren. Der Zugriff auf den Kontaktanbieter ist durch die READ_CONTACTS Berechtigung geschützt, der Zugriff auf den Verzeichnisanbieter ist jedoch durch BIND_DIRECTORY_SEARCH geschützt. Diese Berechtigung wurde auf API-Ebene 17 eingeführt, für frühere Plattformversionen sollte der Anbieter die folgende Überprüfung durchführen, um sicherzustellen, dass der Aufruf vom ContactsProvider stammt:
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>
Die Verzeichnistabelle ist schreibgeschützt und wird vom Kontaktanbieter automatisch verwaltet.
Es hat immer mindestens diese beiden Zeilen: <ul><li> Das lokale Verzeichnis. Es hat Directory#_ID Directory._ID = Directory#DEFAULT Directory.DEFAULT. Dieses Verzeichnis kann verwendet werden, um auf lokal gespeicherte Kontakte zuzugreifen. Dasselbe kann erreicht werden, indem der directory= Parameter vollständig weggelassen wird.
</li li><> Die lokalen unsichtbaren Kontakte. Die entsprechende Verzeichnis-ID lautet Directory#LOCAL_INVISIBLE Directory.LOCAL_INVISIBLE.
</li></ul>
Benutzerdefinierte Verzeichnisse werden vom Kontaktanbieter anhand dieses Verfahrens ermittelt: <ul><li>Es findet alle installierten Inhaltsanbieter mit Metadaten, die sie als Verzeichnisanbieter in AndroidManifest.xmlidentifizieren: <meta-data android:name="android.content.ContactDirectory" android:value="true" />
Dieses Tag sollte in der entsprechenden Inhaltsanbieterdeklaration platziert werden.
</li><> Then Contacts Provider sendet eine Directory#CONTENT_URI Directory.CONTENT_URI Abfrage an jede der Verzeichnisautoren. Ein Verzeichnisanbieter muss diese Abfrage implementieren und eine Liste von Verzeichnissen zurückgeben. Jedes vom Anbieter zurückgegebene Verzeichnis muss über eine eindeutige Kombination für die #ACCOUNT_NAME Und #ACCOUNT_TYPE Spalten verfügen (Nullen sind zulässig). Da Verzeichnis-IDs automatisch zugewiesen werden, ist das feld _ID nicht Teil der Abfrageprojektion.
</li li><>Contacts Provider kompiliert Verzeichnislisten, die von allen Verzeichnisanbietern empfangen werden, jedem einzelnen Verzeichnis eine global eindeutige ID zuweist und alle Verzeichniseinträge in der Verzeichnistabelle speichert.
</li></ul></p>
Der Kontaktanbieter fragt automatisch neu installierte oder ersetzte Pakete ab. Daher reicht einfach die Installation eines Pakets mit einem Verzeichnisanbieter aus, um diesen Anbieter registriert zu haben. Ein Paket, das einen Verzeichnisanbieter liefert, muss keine startbaren Aktivitäten enthalten.
Jede Zeile in der Verzeichnistabelle wird automatisch dem entsprechenden Paket (apk) zugeordnet. Wenn das Paket später deinstalliert wird, werden alle entsprechenden Verzeichniszeilen automatisch aus dem Kontaktanbieter entfernt.
Wenn sich die Liste der Verzeichnisse ändert, die von einem Verzeichnisanbieter verarbeitet werden (z. B. wenn der Benutzer ein neues Verzeichniskonto hinzufügt), sollte der Verzeichnisanbieter aufrufen #notifyDirectoryChange , um den Kontaktanbieter über die Änderung zu benachrichtigen. Als Antwort ruft der Kontaktanbieter den Verzeichnisanbieter erneut ab, um die neue Liste der Verzeichnisse abzurufen.
Eine Verzeichniszeile kann optional einem vorhandenen Konto zugeordnet werden (siehe android.accounts.AccountManager). Wenn das Konto später entfernt wird, werden die entsprechenden Verzeichniszeilen automatisch aus dem Kontaktanbieter entfernt.
Java Dokumentation für android.provider.ContactsContract.Directory.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.
Felder
| Name | Beschreibung |
|---|---|
| AccountName |
Das Konto, dem dieses Verzeichnis zugeordnet ist. |
| AccountType |
Der Kontotyp, dem dieses Verzeichnis zugeordnet ist. |
| CallerPackageParamKey |
Ein Abfrageparameter, der an Verzeichnisanbieter übergeben wird, der den Namen des Clientpakets angibt, der die Abfrageanforderungen vorgenommen hat. |
| ContentItemType |
Der MIME-Typ eines |
| ContentType |
Der MIME-Typ der |
| Default |
_ID des Standardverzeichnisses, das lokal gespeicherte Kontakte darstellt. |
| DirectoryAuthority |
Die Autorität des Verzeichnisanbieters. |
| DisplayName |
Ein optionaler Name, der in der Benutzeroberfläche verwendet werden kann, um dieses Verzeichnis darzustellen, e. |
| EnterpriseDefault |
_ID des Standardverzeichnisses des verwalteten Profils, das lokal gespeicherte Kontakte darstellt. |
| EnterpriseLocalInvisible |
_ID des verwalteten Profilverzeichnisses, das lokal gespeicherte unsichtbare Kontakte darstellt. |
| ExportSupport |
Einer von |
| ExportSupportAnyAccount |
Veraltet.
Eine |
| ExportSupportNone |
Veraltet.
Eine |
| ExportSupportSameAccountOnly |
Veraltet.
Eine |
| LocalInvisible |
_ID des Verzeichnisses, das lokal gespeicherte unsichtbare Kontakte darstellt. |
| PackageName |
Der Name des Pakets, das dieses Verzeichnis besitzt. |
| PhotoSupport |
Einer von |
| PhotoSupportFull |
Veraltet.
Eine |
| PhotoSupportFullSizeOnly |
Veraltet.
Eine |
| PhotoSupportNone |
Veraltet.
Eine |
| PhotoSupportThumbnailOnly |
Veraltet.
Eine |
| ShortcutSupport |
Einer von |
| ShortcutSupportDataItemsOnly |
Veraltet.
Eine |
| ShortcutSupportFull |
Veraltet.
Eine |
| ShortcutSupportNone |
Veraltet.
Eine |
| TypeResourceId |
Der Typ des als Ressourcen-ID erfassten Verzeichnisses im Kontext des Pakets |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Class |
Gibt die Laufzeitklasse dieses Werts |
| ContentUri |
Der content:// Formatvorlagen-URI für diese Tabelle. |
| EnterpriseContentUri |
Der URI, der zum Abrufen aller Verzeichnisse sowohl vom aufrufenden Benutzer als auch vom verwalteten Profil verwendet wird, das mit ihm verknüpft ist. |
| Handle |
Das Handle für die zugrunde liegende Android-Instanz. (Geerbt von Object) |
| JniIdentityHashCode |
Ruft den Identitätshashcode ab, der diesem Java Peer von der Interop-Laufzeit zugewiesen ist. (Geerbt von Object) |
| JniManagedPeerState |
Ein Verzeichnis stellt einen Kontaktekorpus dar, e. (Geerbt von JavaObject) |
| JniPeerMembers |
Ein Verzeichnis stellt einen Kontaktekorpus dar, e. |
| PeerReference |
Ruft den JNI-Objektverweis für diesen Java Peer ab. (Geerbt von Object) |
| ThresholdClass |
Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen. (Geerbt von Object) |
| ThresholdType |
Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen. (Geerbt von Object) |
Methoden
| Name | Beschreibung |
|---|---|
| Clone() |
Erstellt und gibt eine Kopie dieses Objekts zurück. (Geerbt von Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Ein Verzeichnis stellt einen Kontaktekorpus dar, e. (Geerbt von JavaObject) |
| Dispose() |
Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden. (Geerbt von Object) |
| Dispose(Boolean) |
Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden. (Geerbt von Object) |
| DisposeUnlessReferenced() |
Ein Verzeichnis stellt einen Kontaktekorpus dar, e. (Geerbt von JavaObject) |
| Equals(Object) |
Ein Verzeichnis stellt einen Kontaktekorpus dar, e. (Geerbt von JavaObject) |
| Equals(Object) |
Gibt an, ob ein anderes Objekt "gleich" diesem Objekt ist. (Geerbt von Object) |
| GetHashCode() |
Gibt einen Hashcodewert für das Objekt zurück. (Geerbt von Object) |
| IsEnterpriseDirectoryId(Int64) |
Gibt WAHR zurück, wenn eine Verzeichnis-ID vom Kontaktanbieter im Unternehmensprofil stammt. |
| IsRemoteDirectoryId(Int64) |
Gibt TRUE zurück, wenn es sich um ein remote gespeichertes Verzeichnis handelt. |
| JavaFinalize() |
Wird vom Garbage Collector für ein Objekt aufgerufen, wenn die Garbage Collection bestimmt, dass keine weiteren Verweise auf das Objekt vorhanden sind. (Geerbt von Object) |
| Notify() |
Aktiviert einen einzelnen Thread, der auf dem Monitor dieses Objekts wartet. (Geerbt von Object) |
| NotifyAll() |
Aktiviert alle Threads, die auf dem Monitor dieses Objekts warten. (Geerbt von Object) |
| NotifyDirectoryChange(ContentResolver) |
Benachrichtigt das System einer Änderung in der Liste der Verzeichnisse, die von einem bestimmten Verzeichnisanbieter behandelt werden. |
| SetHandle(IntPtr, JniHandleOwnership) |
Legt die Handle-Eigenschaft fest. (Geerbt von Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Ein Verzeichnis stellt einen Kontaktekorpus dar, e. (Geerbt von JavaObject) |
| ToArray<T>() |
Erstellt ein verwaltetes Array aus diesem Java Arraywrapper. (Geerbt von Object) |
| ToString() |
Gibt eine Zeichenfolgendarstellung des Objekts zurück. (Geerbt von Object) |
| UnregisterFromRuntime() |
Hebt die Registrierung dieses Java Peers aus der Interop-Laufzeit auf. (Geerbt von Object) |
| Wait() |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch em benachrichtigt/em< oder >em<unterbrochen>/em<.><> (Geerbt von Object) |
| Wait(Int64, Int32) |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist. (Geerbt von Object) |
| Wait(Int64) |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
| Name | Beschreibung |
|---|---|
| IJavaPeerable.Disposed() |
Ein Verzeichnis stellt einen Kontaktekorpus dar, e. (Geerbt von JavaObject) |
| IJavaPeerable.Finalized() |
Ein Verzeichnis stellt einen Kontaktekorpus dar, e. (Geerbt von JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Ein Verzeichnis stellt einen Kontaktekorpus dar, e. (Geerbt von JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Ein Verzeichnis stellt einen Kontaktekorpus dar, e. (Geerbt von JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Ein Verzeichnis stellt einen Kontaktekorpus dar, e. (Geerbt von JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Ein Verzeichnis stellt einen Kontaktekorpus dar, e. (Geerbt von JavaObject) |
Erweiterungsmethoden
| Name | Beschreibung |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Ruft den JNI-Namen des Typs der Instanz |
| JavaAs<TResult>(IJavaPeerable) |
Versuchen Sie, die Eingabe |
| JavaCast<TResult>(IJavaObject) |
Führt eine android-laufzeitgecheckte Typkonvertierung aus. |
| JavaCast<TResult>(IJavaObject) |
Ein Verzeichnis stellt einen Kontaktekorpus dar, e. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Versuchen Sie, die Eingabe |