Um im „Batch-Modus” auf einen Anbieter zuzugreifen, erstellen Sie ein Array von ContentProviderOperation-Objekten und senden diese dann an einen Inhaltsanbieter mit ContentResolver.applyBatch(). Sie übergeben die Berechtigung des Inhaltsanbieters an diese Methode und nicht an einen bestimmten Inhalts-URI. Dadurch kann jedes ContentProviderOperation-Objekt im Array für eine andere Tabelle arbeiten. Ein Aufruf von ContentResolver.applyBatch() gibt ein Array von Ergebnissen zurück. In diesem Handbuch wird davon ausgegangen, dass Sie die Grundlagen von Android-Inhaltsanbietern kennen. Weitere Informationen zu Android-Inhaltsanbietern finden Sie im Grundlagenhandbuch für Inhaltsanbieter. Inhaltsanbieter können viele verschiedene Datentypen anbieten. Der Benutzerwörterbuchanbieter bietet nur Text an, aber Anbieter können auch die folgenden Formate anbieten: Die Beschreibung der Contract-Klasse ContactsContract.RawContacts enthält einen Codeausschnitt, der das Einfügen von Batch-Dateien veranschaulicht. Die Contact Manager-Beispielanwendung enthält ein Beispiel für den Batchzugriff in der Quelldatei ContactAdder.java. Der Benutzerwörterbuchanbieter definiert die Berechtigung android.permission.READ_USER_DICTIONARY in seiner Manifestdatei, sodass eine Anwendung, die vom Anbieter lesen möchte, diese Berechtigung anfordern muss. Es gibt überzeugende Argumente für Hersteller und Zahler, wertbasierte Verträge in Betracht zu ziehen: Um Daten von einem Anbieter abzurufen, führen Sie die folgenden grundlegenden Schritte aus: Hinweis: Um eine ListView mit einem Cursor zu sichern, muss der Cursor eine Spalte mit dem Namen _ID enthalten. Aus diesem Grund ruft die zuvor angezeigte Abfrage die _ID Spalte für die Tabelle „Wörter” ab, obwohl sie in der ListView nicht angezeigt wird. Diese Einschränkung erklärt auch, warum die meisten Anbieter über eine _ID Spalte für jede ihrer Tabellen verfügen.

Der Ausschnitt fügt die spalte_ID nicht hinzu, da diese Spalte automatisch verwaltet wird. Der Anbieter weist jeder hinzugefügten Zeile einen eindeutigen Wert von _ID zu. Anbieter verwenden diesen Wert in der Regel als Primärschlüssel der Tabelle. In dieser SQL-Anweisung werden die tatsächlichen Spaltennamen anstelle von Vertragsklassenkonstanten verwendet. Sie können auf Daten in einem Inhaltsanbieter zugreifen, auch wenn Sie nicht über die erforderlichen Zugriffsberechtigungen verfügen, indem Sie eine Absicht an eine Anwendung senden, die über die Berechtigungen verfügt, und eine Ergebnisabsicht mit „URI”-Berechtigungen erhalten. Dies sind Berechtigungen für einen bestimmten Inhalts-URI, die so lange andauern, bis die Aktivität, die sie empfängt, abgeschlossen ist. Die Anwendung mit permanenten Berechtigungen erteilt temporäre Berechtigungen, indem sie ein Flag in der Ergebnisabsicht festlegt: Der bekannte MIME-Typ text/html hat z. B. den Texttyp und den HTML-Untertyp. Wenn der Anbieter diesen Typ für einen URI zurückgibt, bedeutet dies, dass eine Abfrage, die diesen URI verwendet, Text mit HTML-Tags zurückgibt. Der nächste Schritt beim Abrufen von Daten von einem Anbieter besteht darin, eine Abfrage zu erstellen.

Dieser erste Ausschnitt definiert einige Variablen für den Zugriff auf den Benutzerwörterbuchanbieter: Um Daten in einen Anbieter einzufügen, rufen Sie die ContentResolver.insert()-Methode auf.