Синтаксис
<provider android:authorities="list"
android:enabled=["true" | "false"]
android:exported=["true" | "false"]
android:grantUriPermissions=["true" | "false"]
android:icon="візуальний ресурс"
android:initOrder="ціле число"
android:label="текстовий ресурс"
android:multiprocess=["true" | "false"]
android:name="текстовий ресурс"
android:permission="текст"
android:process="текст"
android:readPermission="текст"
android:syncable=["true" | "false"]
android:writePermission="текст" >
</provider>
Міститься у
<application>
Може містити
<meta-data>
<grant-uri-permission>
<path-permission>
Опис
Оголошує компонент-постачальник контенту. Постачальник контенту являється потомком класу ContentProvider, який забезпечує структурний доступ до даних, які управляються програмою. У вашій програмі усі постачальники контенту повинні бути визначені у елементі <provider> маніфест-файлу, у іншому випадку, система не виконуватиме їхній код.
Оголошення вимагається тільки для постачальників контенту, які являються частиною вашої програми. Постачальники контенту у інших програмах, які ви використовуєте у своїй, не повинні бути оголошеними.
Система Android зберігає посилання на постачальника контенту у відповідності до рядка авторизації, частини URI постачальника. Наприклад, припустимо, що ви бажаєте отримати доступ до постачальника контенту, який зберігає інформацію про лікарів. Щоб виконати це, ви викликаєте метод ContentResolver.query(), який разом з іншими аргументами отримує URI, яке ідентифікує постачальника:
content://com.example.project.healthcareprovider/nurses/rn
Eлемент content: являється схемою, яка ідентифікує URI як вказівник на контент у постачальника контенту Android. Aдреса com.example.project.healthcareprovider ідентифікує постачальник; система Android шукає адресу у списку відомих адрес постачальників контенту. Підрядок nurses/rn являється шляхом, яку постачальник контенту використовує для визначення підмножин даних.
Зверніть увагу, коли ви оголошуєте власний постачальник у елементі <provider>, ви не включаєте схему або шлях у атрибут android:name.
Атрибути
android:authorities
Список з однієї або декількох адрес, які ідентифікують дані, які являються доступними у даному постачальнику контенту. Множинні адреси вказуються через символ крапки з комою. Для запобігання конфліктів, адреси повинні використовувати імена у Java-стилі (на подобі com.example.provider.cartoonprovider). Зазвичай, воно містить ім'я потомка класу ContentProvider, який реалізовує постачальника.
Для даного атрибуту не існує значення за умовчанням, хоча б один повинен бути використаним.
andoid:enabled
Визначає можливість створення примірника даного постачальника операційною системою. Значення true для дозволу такої можливості.
android:exported
Чи даний постачальник контенту доступний для використання іншими програмами:
- true: постачальник доступний для інших програм. Будь-яка програма може використовувати URI даного постачальника для доступу до нього.
- false: постачальник недоступний для інших програм. Встановіть android:exported=”false” для обмеження доступу до постачальника для вашої програми. Тільки програми, які мають ідентифікатор користувача такий ж як у постачальника зможуть отримати доступ до нього.
Значення за умовчанням — “true”.
android:grantUriPermissions
Визначає чи компоненти, які зазвичай не мають доступ до постачальника, можуть отримати до нього доступ, через тимчасово вимкнуті обмеження, для значення “true”.
android:icon
Іконка, яка представляє постачальника контенту, Даний атрибут повинен бути встановленим як посилання до графічного ресурсу, який містить зображення. Якщо даний атрибут не встановлений — використовується іконка, визначена в елементі <application>.
android:initOrder
Порядок у якому постачальник контенту повинен бути ініціалізований, відносно до інших постачальників контенту, які розміщуються в тому ж процесі. Коли існують залежності між постачальниками вмісту, встановлення даного атрибуту для кожного з них, запевняє, що вони будуть створеними у необхідному порядку. Дане значення являє собою звичайне ціле число, постачальник з більшим числом ініціалізовується першим.
android:label
Читабельна для користувача мітка постачальника контенту. Якщо цей атрибут не встановлено, використовується мітка встановлена для програми в цілому у елементі <application>.
android:multiprocess
Вказує на необхідність створення для кожного нового процесу програми новий постачальник контенту для значення “true”. Значення за умовчанням — false.
android:name
Ім'я класу, який реалізовує постачальник контенту, потомок класу ContentProvider. Дане значення повинно містити повний специфікатор імені класу включаючи шлях крізь Java-пакети і повинно бути обов'язково встановленим.
android:permission
Ім'я прав доступу, які необхідно мати клієнту для зчитування даних постачальника вмісту. Даний атрибут являється простим шляхом встановлення одного дозволу для читання і запису даних.
android:process
Ім'я процесу, у якому повинен виконуватись постачальник контенту. Зазвичай, усі компоненти програми виконуються у стандартному процесі, який створений для програми. Він має таке ж ім'я як пакет програми.
android:readPermission
Дозволи які необхідно мати клієнтам для опитування постачальника контенту.
android:syncable
Визначає необхідність синхронізації даних поточного постачальника з даними на сервері, для значення “true”.
android:writePermission
Дозвіл, який клієнти повинні мати для внесення змін до даних, які управляються даним постачальником вмісту.