<provider>

СИНТАКСИС:
СОДЕРЖИТСЯ В:
<application>
МОЖЕТ СОДЕРЖАТЬ:
<meta-data>
<grant-uri-permission>
<path-permission>
ОПИСАНИЕ:

Объявляет поставщика содержимого. Поставщик содержимого является подклассом ContentProvider, который обеспечивает структурированный доступ к данным, управляемым приложением. Все поставщики содержимого вашего приложения должны быть объявлены с помощью элемента <provider> в файле манифеста, иначе они будут недоступны для системы и не смогут быть использованы.

Вам нужно объявить только поставщиком содержимого, которые являются частью вашего приложения. Не требуется объявлять поставщиков из других приложений.

Система Android хранит ссылки на поставщиков содержимого в соответствии с authority, которая является частью URI. Например, вы хотите получить доступ к поставщике содержимого, который хранит информацию о медицинских работниках. Чтобы это сделать, вызовите метод ContentResolver.query(), который среди прочих аргументов принимает URI, идентифицирующий поставщика:

Схема content: определяет, что URI указывает на поставщика системы Android. Authority com.example.project.healthcareprovider указывает на сам поставщик содержимого; Android содержит список известных поставщиков и их authority; Подстрока nurses/rn это путь (path), который использует поставщик для описания набора данных.

Когда вы определяете поставщика содержимого с помощью элемента <provider>, обратите внимание, что аргумент android:name содержит только authority и не содержит схему и путь.

Подробности читайте в разделе Поставщики содержимого.

АТРИБУТЫ:
android:authorities

Список из одного или нескольких URI authority, которые указывают на данные, предоставляемые поставщиком содержимого. Названия authority разделяются точкой с запятой ‘;’. Для избежания конфликтов, используйте стиль именования пакетов Java (например, com.example.provider.cartoonprovider). Как правило, это имя подкласса ContentProvider, который реализует поставщика содержимого.

Атрибут не имеет значения по умолчанию. Обязательно должно быть указано хотя бы одно значение authority.

android:enabled

Указывает может ли поставщик быть создан системой, true – если может и false – если нет. Значение по умолчанию true.

Элемент <application> имеет собственный атрибут enabled, который применяется для всех компонентов приложения. Атрибуты обоих элементов <application> и <provider> должны быть равны true (это их значение по умолчанию). Если в одном из элементов будет указано значение false, поставщик не сможет быть создан.

android:exported

Указывает, доступен ли поставщик для использования другими приложениями:

  • true: доступен для других приложений. Любое приложение может использовать URI поставщика содержимого для доступа к данным, с учетом разрешений для поставщика.
  • false: недоступен для других приложений. Установите это значение для ограничения доступа к поставщику содержимого. Получить доступ смогут только приложения, имеющие такой же идентификатор пользователя.

Значение по умолчанию true для приложений, у которых один из атрибутов android:minSdkVersion или android:targetSdkVersion равен 16 или ниже, иначе значение по умолчанию false.

Вы можете установить значение атрибута, равное false и в дополнение к этому ограничить доступ с помощью разрешений (смотрите элемент <permission>).

android:grantUriPermissions

Указывает может ли выдаваться временное разрешение тому, кто обычно не имеет разрешения на доступ к данным поставщика содержимого. Если установлено true, разрешение может быть выдано для любых данных поставщика, если false – разрешение может быть выдано только для набора данных, указанных в элементах <grant-uri-permission>. Значение по умолчанию false.

Другими словами, это способ выдачи компонентам приложения одноразового разрешения на доступ к защищенным данным. Например, если e-mail сообщение содержит вложение, почтовый клиент может вызвать соответствующее приложение для его просмотра, несмотря на то, что это приложение не имеет общего разрешения для просмотра всех данных поставщика содержимого.

В таких случаях разрешение выдается с помощью установки флагов FLAG_GRANT_READ_URI_PERMISSION и FLAG_GRANT_WRITE_URI_PERMISSION в намерении, которой запускает компонент. К примеру, почтовый клиент может установить флаг FLAG_GRANT_READ_URI_PERMISSION для намерения и передать его в метод Content.startActivity(). Разрешение будет установлено для URI, указанного в намерении.

Если вы включаете данную функцию, установив данный атрибут в true или с помощью элементов <grant-uri-permission>, вы должны вызывать метод Context.revokeUriPermission(), когда URI удаляется из поставщика.

Смотрите также элемент <grant-uri-permission>.

android:icon

Иконка для поставщика содержимого. Атрибут должен содержать ссылку на ресурс типа drawable. Если атрибут не установлен, будет использоваться иконка приложения, указанная в элементе <application>.

android:initOrder

Порядок, в котором поставщик содержимого должен создаваться, относительно других поставщиков того же процесса. Атрибут используется при наличии зависимости между поставщиками содержимого и гарантирует для каждого из них, что они создаются в порядке, предусмотренном этими зависимостями.

Атрибут должен содержать целочисленное значение. Чем выше номер, тем раньше запускается поставщик.

android:label

Заголовок поставщика, видимый для пользователя. Если атрибут не установлен, используется заголовок приложения, установленный в элементе <application>.

Атрибут должен содержать строку или ссылку на строковый ресурс (рекомендуется).

android:multiprocess

Указывает может ли экземпляр поставщика ресурсов быть создан в другом процессе. true если экземпляры могут работать в разных процессах, false если нет. Значение по умолчанию false.

Обычно поставщики процессов создаются в процессе приложения, в котором они объявлены. Однако, если этот атрибут установлен в значение true, система может создавать экземпляры в любом клиентском процессе, где требуется взаимодействие, избегая таким образом расходов на взаимодействие между процессами.

android:name

Имя класса (подкласс ContentProvider), который реализует поставщика содержимого. Это должно быть полное имя, включая название пакета (например com.example.project.TransportationProvider). Однако, если первым символом стоит точка, будет использоваться имя пакета, указанное в элементе <manifest>.

Атрибут не имеет значения по умолчанию.

android:permission

Название разрешения, которое должны иметь клиенты для чтения или записи данных поставщика содержимого. Атрибут предоставляет удобный способ указать разрешение для записи и чтения в одном месте. Однако, атрибуты readPermission и writePermission имеют над ним приоритет.

android:process

Имя процесса, в котором поставщик содержимого должен быть запущен. Как правило, все компоненты приложения запускаются в процессе по умолчанию, созданным для приложения и задавать этот атрибут не требуется. Но если необходимо, вы можете задать другое имя процесса, что позволит распределить компоненты вашего приложения между несколькими процессами.

Если имя, указанное в атрибуте начинается с двоеточия “:”, новый процесс, частный для приложения, создается при необходимости и поставщики работают в нем. Если имя процесса начинается с маленькой буквы, поставщик будет запущен в глобальном процессе с указанным именем, при условии, что оно имеет разрешение. Это позволяет компонентам различных приложений использовать общий процесс, снижая расход ресурсов.

android:readPermission

Разрешение, необходимое клиентам для чтения поставщика содержимого.

android:syncable

Указывает должны ли синхронизироваться данные между поставщиком содержимого и сервером. true если должны, false если нет.

android:writePermission

Разрешение, необходимое клиентам для внесения изменений в данные, которые контролирует поставщик содержимого.

ДОБАВЛЕНО:
уровень API 1
СМОТРИТЕ ТАКЖЕ:
Поставщики содержимого

Добавить комментарий