Sprache

ContactsContract.Directory Klasse

Definition

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
ContactsContract.Directory
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: &lt;meta-data android:name="android.content.ContactDirectory" android:value="true" /&gt;

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 #CONTENT_URI Elements.

ContentType

Der MIME-Typ der #CONTENT_URI Bereitstellung eines Verzeichnisses von Kontaktverzeichnissen.

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 #EXPORT_SUPPORT_NONE, #EXPORT_SUPPORT_ANY_ACCOUNT, #EXPORT_SUPPORT_SAME_ACCOUNT_ONLY.

ExportSupportAnyAccount
Veraltet.

Eine #EXPORT_SUPPORT Einstellung, die angibt, dass das Verzeichnis die kopierten Daten in ein beliebiges Kontaktkonto zulässt.

ExportSupportNone
Veraltet.

Eine #EXPORT_SUPPORT Einstellung, die angibt, dass das Verzeichnis keine Daten davon kopiert werden darf.

ExportSupportSameAccountOnly
Veraltet.

Eine #EXPORT_SUPPORT Einstellung, die angibt, dass das Verzeichnis seine Daten nur in das durch#ACCOUNT_TYPE/#ACCOUNT_NAME .

LocalInvisible

_ID des Verzeichnisses, das lokal gespeicherte unsichtbare Kontakte darstellt.

PackageName

Der Name des Pakets, das dieses Verzeichnis besitzt.

PhotoSupport

Einer von #PHOTO_SUPPORT_NONE, #PHOTO_SUPPORT_THUMBNAIL_ONLY, #PHOTO_SUPPORT_FULL.

PhotoSupportFull
Veraltet.

Eine #PHOTO_SUPPORT Einstellung, die angibt, dass das Verzeichnis Miniaturansichten sowie Kontaktfotos in voller Größe erzeugen kann.

PhotoSupportFullSizeOnly
Veraltet.

Eine #PHOTO_SUPPORT Einstellung, die angibt, dass das Verzeichnis Kontaktfotos in voller Größe aufweist, aber keine skalierten Miniaturansichten bereitstellen kann.

PhotoSupportNone
Veraltet.

Eine #PHOTO_SUPPORT Einstellung, die angibt, dass das Verzeichnis keine Fotos bereitstellt.

PhotoSupportThumbnailOnly
Veraltet.

Eine #PHOTO_SUPPORT Einstellung, die angibt, dass das Verzeichnis nur kleine Miniaturansichten von Kontaktfotos erzeugen kann.

ShortcutSupport

Einer von #SHORTCUT_SUPPORT_NONE, #SHORTCUT_SUPPORT_DATA_ITEMS_ONLY, #SHORTCUT_SUPPORT_FULL.

ShortcutSupportDataItemsOnly
Veraltet.

Eine #SHORTCUT_SUPPORT Einstellung, die angibt, dass das Verzeichnis die Erstellung von Verknüpfungen für Datenelemente wie E-Mail, Telefon oder Postadresse, aber nicht für den gesamten Kontakt zulässt.

ShortcutSupportFull
Veraltet.

Eine #SHORTCUT_SUPPORT Einstellung, die angibt, dass das Verzeichnis das Erstellen von Verknüpfungen für Kontakt sowie deren bestandteilen Elemente zulässt.

ShortcutSupportNone
Veraltet.

Eine #SHORTCUT_SUPPORT Einstellung, die angibt, dass das Verzeichnis keine Verknüpfungen zulässt, die für ihre Kontakte erstellt wurden.

TypeResourceId

Der Typ des als Ressourcen-ID erfassten Verzeichnisses im Kontext des Pakets #PACKAGE_NAME, e.

Eigenschaften

Name Beschreibung
Class

Gibt die Laufzeitklasse dieses Werts Objectzurück.

(Geerbt von Object)
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 selfab.

JavaAs<TResult>(IJavaPeerable)

Versuchen Sie, die Eingabe selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

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 selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

Gilt für: