- Syntax:
-
<provider android:authorities="list" android:directBootAware=["true" | "false"] android:enabled=["true" | "false"] android:exported=["true" | "false"] android:grantUriPermissions=["true" | "false"] android:icon="drawable resource" android:initOrder="integer" android:label="string resource" android:multiprocess=["true" | "false"] android:name="string" android:permission="string" android:process="string" android:readPermission="string" android:syncable=["true" | "false"] android:writePermission="string" > ... </provider>
- enthalten in:
-
<application>
- kann Folgendes enthalten:
<meta-data>
<grant-uri-permission>
<intent-filter>
<path-permission>
- description:
-
Deklariert eine Komponente des Contentanbieters. Ein Contentanbieter ist eine abgeleitete Klasse
ContentProvider
, die strukturierten Zugriff auf Daten ermöglicht, die vom . Alle Contentanbieter in Ihrer App müssen in einer<provider>
-Element in der Manifestdatei. Andernfalls erkennt das System sie nicht. und führt sie nicht aus.Geben Sie nur Contentanbieter an, die Teil Ihrer App sind. Erklären Sie Contentanbieter nicht in andere Anwendungen, die Sie in Ihrer Anwendung nutzen.
Das Android-System speichert Verweise auf Contentanbieter gemäß einer Zertifizierungsstelle. String, der Teil des Inhalts-URI des Anbieters ist. Angenommen, Sie möchten auf einen Contentanbieter zuzugreifen, der Informationen über medizinisches Fachpersonal speichert. Aufgabe rufen Sie die Methode auf,
ContentResolver.query()
für einen URI, der unter anderem den Anbieter identifiziert:content://com.example.project.healthcareprovider/nurses/rn
Das Schema
content:
gibt den URI als Inhalts-URI an, der auf Contentanbieter für Android. Die Behördecom.example.project.healthcareprovider
identifiziert den Anbieter selbst. Die Das Android-System sucht die Behörde in der Liste der bekannten Anbieter und ihrer Behörden. Der Teilstringnurses/rn
ist ein Pfad, den der Contentanbieter verwendet. Teilmengen der Anbieterdaten zu identifizieren.Wenn Sie Ihren Anbieter im Element
<provider>
definieren, Fügen Sie das Schema oder den Pfad nicht in das Argumentandroid:name
ein, Befugnis.Informationen zur Verwendung und Entwicklung von Contentanbietern finden Sie unter Contentanbieter:
- Attribute:
-
android:authorities
-
Eine Liste mit einer oder mehreren URI-Stellen, die die vom Contentanbieter angebotenen Daten identifizieren.
Sie können mehrere Zertifizierungsstellen auflisten, indem Sie deren Namen durch ein Semikolon trennen.
Um Konflikte zu vermeiden, sollten Sie
Namenskonventionen im Java-Stil
wie
com.example.provider.cartoonprovider
. In der Regel ist das der Name, der abgeleiteten KlasseContentProvider
, die den Anbieter implementiertEs gibt keine Standardeinstellung. Es muss mindestens eine Behörde angegeben werden.
android:enabled
- Gibt an, ob der Contentanbieter vom System instanziiert werden kann. Es ist
"true"
, wenn dies möglich ist, und"false"
, wenn nicht. Der Standardwert ist"true"
.Das
<application>
-Element hat eine eigene Attribut „enabled
“, das für alle gilt Anwendungskomponenten wie Contentanbieter. Die<application>
und<provider>
müssen beide"true"
sein, da sie beide sind standardmäßig für den Contentanbieter aktiviert. Wenn einer der folgenden Werte zutrifft:"false"
, der Anbieter ist deaktiviert. Es kann nicht instanziiert werden. android:directBootAware
Ob der Contentanbieter Direct-Boot-fähig ist, d. h., ob er ausgeführt werden kann, bevor der Nutzer das Gerät entsperrt.
Hinweis : Während der Direct Boot, ein Inhalt in Ihrer Anwendung nur auf die Daten zugreifen kann, die in Gerätegeschützter Speicher.
Der Standardwert ist
"false"
.android:exported
-
Gibt an, ob der Contentanbieter anderen Anwendungen zur Verfügung steht.
-
"true"
: Der Anbieter steht anderen Anwendungen zur Verfügung. Jede Anwendung kann verwenden Sie den Inhalts-URI des Anbieters, um auf sie zuzugreifen, vorbehaltlich der für und den Anbieter. -
"false"
: Der Anbieter ist für andere Anwendungen nicht verfügbar. Festlegenandroid:exported="false"
, um den Zugriff auf den Anbieter auf Ihr Anwendungen. Nur Anwendungen, die dieselbe Nutzer-ID (UID) wie der Anbieter haben Anwendungen, denen vorübergehend Zugriff auf die über dasandroid:grantUriPermissions
darauf zugreifen können.
Da dieses Attribut in API-Ebene 17 eingeführt wurde, werden alle Geräte, auf denen das API-Level ausgeführt wird, 16 und niedriger verhalten sich so, als wäre dieses Attribut auf
"true"
gesetzt. Wenn Sieandroid:targetSdkVersion
auf 17 oder höher setzen, ist der Standardwert für Geräte, auf denen die API ausgeführt wird,"false"
. ab Level 17.Sie können
android:exported="false"
festlegen und trotzdem den Zugriff auf Ihr indem Sie Berechtigungen mit derpermission
. -
android:grantUriPermissions
- Ob Personen, die normalerweise nicht berechtigt sind,
Zugriff auf die Daten des Contentanbieters erhalten,
kann dies erlaubt werden,
die Beschränkung durch die
readPermission
,writePermission
,permission
undexported
Attribute.Wenn die Berechtigung gewährt werden kann, ist es
"true"
, andernfalls"false"
. Wenn"true"
, kann für alle Inhalte eine Berechtigung erteilt werden Daten des Anbieters. Wenn"false"
, kann die Berechtigung nur gewährt werden zu den in der Tabelle aufgeführten<grant-uri-permission>
-Unterelemente, falls zutreffend. Der Standardwert ist"false"
.Das Erteilen von Berechtigungen ist eine Möglichkeit, einer Anwendungskomponente einmalig Zugriff auf Daten, die durch eine Berechtigung geschützt sind. Wenn beispielsweise eine E-Mail Nachricht einen Anhang enthält, ruft die E-Mail-Anwendung möglicherweise auf der ob er keine allgemeinen Angaben machen muss, Berechtigung, sich alle Daten des Contentanbieters anzusehen.
In solchen Fällen wird die Berechtigung
FLAG_GRANT_READ_URI_PERMISSION
undFLAG_GRANT_WRITE_URI_PERMISSION
Flags im ObjektIntent
, mit dem die Komponente aktiviert wird. Beispiel: Der Parameter E-Mail-Anwendung möglicherweiseFLAG_GRANT_READ_URI_PERMISSION
imIntent
anContext.startActivity()
übergeben. Die Berechtigung ist spezifisch zum URI inIntent
.Wenn Sie diese Funktion aktivieren, können Sie entweder das Attribut auf
"true"
setzen oder durch Definieren von<grant-uri-permission>
Unterelemente, AufrufContext.revokeUriPermission()
Ein abgedeckter URI wird vom Anbieter gelöscht.Weitere Informationen findest du in den
<grant-uri-permission>
-Elements. android:icon
- Ein Symbol für den Contentanbieter.
Dieses Attribut wird als Verweis auf eine Drawable-Ressource festgelegt, die
Bilddefinition. Wenn nicht festgelegt, wird das für die Anwendung angegebene Symbol
stattdessen als Ganzes verwendet. Weitere Informationen findest du in den
<application>
.icon
-Attributs des Elements. android:initOrder
- Die Reihenfolge, in der der Contentanbieter instanziiert wird im Verhältnis zu anderen Contentanbietern, die von demselben Prozess gehostet werden. Bei Abhängigkeiten zwischen Contentanbietern können Sie dafür sorgen, dass sie in der Reihenfolge die für diese Abhängigkeiten erforderlich sind. Der Wert ist eine Ganzzahl, wobei zuerst höhere Zahlen initialisiert werden.
android:label
- Ein für Nutzer lesbares Label für den bereitgestellten Inhalt.
Wenn dieses Attribut nicht festgelegt ist, gilt das Label für die Anwendung als Ganzes
verwendet werden. Weitere Informationen findest du in den
<application>
-Elementenlabel
-Attribut.Das Label wird normalerweise als Verweis auf eine Stringressource festgelegt, sodass kann er wie andere Zeichenfolgen in der Benutzeroberfläche lokalisiert werden. Der Einfachheit halber sollten Sie kann auch als Rohstring festgelegt werden.
android:multiprocess
- Wenn die App in mehreren Prozessen ausgeführt wird, bestimmt dieses Attribut,
werden mehrere Instanzen des Contentanbieters erstellt. Wenn
"true"
, Jeder Prozess der App hat ein eigenes Inhaltsanbieterobjekt. Wenn"false"
, die Prozesse der App teilen sich nur ein Contentanbieterobjekt. Der Standardwert ist"false"
.Das Festlegen dieses Flags auf
"true"
kann die Leistung verbessern, indem den Aufwand für die Interprozesskommunikation reduzieren, aber auch den Arbeitsspeicher erhöhen, der einzelnen Prozesse. android:name
- Der Name der Klasse, in der der Contentanbieter implementiert ist, eine abgeleitete Klasse von
ContentProvider
. Dies ist normalerweise ein voll qualifizierter Klassenname, z. B."com.example.project.TransportationProvider"
. Kurz gesagt: Wenn das erste Zeichen des Namens ein Punkt ist, wird er an den Paketnamen angehängt, der in der<manifest>
-Element.Es gibt keine Standardeinstellung. Der Name muss angegeben werden.
android:permission
- Der Name einer Berechtigung, die Clients zum Lesen oder Schreiben des
des Contentanbieters verwendet. Mit diesem Attribut können Sie
eine Lese- und Schreibberechtigung. Die
readPermission
, Die AttributewritePermission
undgrantUriPermissions
haben Vorrang zu diesem Thema.Wenn die
readPermission
festgelegt ist, steuert es den Zugriff für die Abfrage des Contentanbieters. Wenn das AttributwritePermission
festgelegt ist, und steuert den Zugriff, um die Daten des Anbieters zu ändern.Weitere Informationen zu Berechtigungen finden Sie in der Berechtigungen in der App-Manifestübersicht und Sicherheitstipps
android:process
- Der Name des Prozesses, in dem der Contentanbieter ausgeführt wird. Normalerweise
werden alle Komponenten einer Anwendung in dem Standardprozess ausgeführt, der für den
. Es hat denselben Namen wie das Anwendungspaket.
Die
<application>
Elementprocess
unterschiedliche Werte für alle Komponenten. Jede Komponente kann jedoch den Standardwert mit einem eigenenprocess
-Attribut, sodass Sie Ihre in mehreren Prozessen anwenden können.Wenn der diesem Attribut zugewiesene Name mit einem Doppelpunkt (
:
) beginnt, wird ein neuer ist ein auf die Anwendung gebundener Prozess und wird erstellt, wenn er benötigt während die Aktivität ausgeführt wird.Wenn der Prozessname mit einem Kleinbuchstaben beginnt, wird die Aktivität ausgeführt in einem globalen Prozess dieses Namens erfolgen, sofern er dazu berechtigt ist. So können Komponenten in verschiedenen Anwendungen einen Prozess gemeinsam nutzen, Ressourcennutzung.
android:readPermission
Eine Berechtigung, die Kunden haben müssen, um den Contentanbieter abzufragen.
Wenn der Anbieter
android:grantUriPermissions
festlegt an"true"
oder wenn ein Kunde die Bedingungen eines<grant-uri-permission>
Unterelement kann der Client vorübergehend Lesezugriff auf den Inhalt Daten des Anbieters.Weitere Informationen finden Sie in den
permission
undwritePermission
-Attribute.android:syncable
- Ob die Daten, die der Kontrolle des Contentanbieters unterliegen,
mit Daten auf einem Server synchronisiert werden. Es ist
"true"
falls möglich, und"false"
, wenn nicht. android:writePermission
Berechtigung, die Clients benötigen, um Änderungen an den Daten vorzunehmen die vom Contentanbieter kontrolliert werden.
Wenn der Anbieter
android:grantUriPermissions
festlegt an"true"
oder wenn ein Kunde die Bedingungen eines<grant-uri-permission>
Unterelement kann der Client vorübergehenden Schreibzugriff erhalten, um den Inhalt Daten des Anbieters.Weitere Informationen finden Sie in den
permission
undreadPermission
-Attribute.
- eingeführt in:
- API-Level 1
- Siehe auch:
- Contentanbieter
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2024-08-22 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2024-08-22 (UTC)."],[],[]]