- синтаксис:
<data android:scheme="string" android:host="string" android:port="string" android:path="string" android:pathPattern="string" android:pathPrefix="string" android:pathSuffix="string" android:pathAdvancedPattern="string" android:mimeType="string" />
- содержится в:
-
<intent-filter>
- описание:
- Добавляет спецификацию данных в фильтр намерений. Спецификация представляет собой тип данных, использующий атрибут
mimeType
, URI или и тип данных, и URI. URI задается отдельными атрибутами для каждой его части:<scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>|<pathAdvancedPattern>|<pathSuffix>]
Эти атрибуты, определяющие формат URI, являются необязательными, но также взаимозависимыми:
- Если для фильтра намерений не указана
scheme
, все остальные атрибуты URI игнорируются. - Если для фильтра не указан
host
, атрибутport
и все атрибуты пути игнорируются.
Все элементы
<data>
, содержащиеся в одном элементе<intent-filter>
вносят свой вклад в один и тот же фильтр. Так, например, следующая спецификация фильтра:<intent-filter . . . > <data android:scheme="something" android:host="project.example.com" /> ... </intent-filter>
эквивалентно этому:
<intent-filter . . . > <data android:scheme="something" /> <data android:host="project.example.com" /> ... </intent-filter>
Вы можете разместить любое количество элементов
<data>
внутри<intent-filter>
, чтобы предоставить ему несколько вариантов данных. Ни один из его атрибутов не имеет значений по умолчанию.Информацию о том, как работают фильтры намерений, включая правила сопоставления объектов намерений с фильтрами, см. в разделах «Намерения» и «Фильтры намерений» , а также в разделе «Фильтры намерений» в обзоре файла манифеста.
- Если для фильтра намерений не указана
- атрибуты:
-
android:scheme
- Часть схемы URI. Это минимальный необходимый атрибут для указания URI. Для фильтра должен быть установлен хотя бы один атрибут
scheme
, иначе ни один из других атрибутов URI не будет иметь смысла.Схема указывается без завершающего двоеточия, например
http
, а неhttp:
.Если фильтр имеет набор типов данных (с использованием атрибута
mimeType
), но не имеет схемы, предполагаются схемыcontent:
иfile:
Примечание . Сопоставление схем в платформе Android чувствительно к регистру, в отличие от RFC. Поэтому всегда указывайте схемы строчными буквами.
-
android:host
- Хостовая часть органа URI. Этот атрибут не имеет смысла, если для фильтра также не указан атрибут
scheme
. Чтобы сопоставить несколько поддоменов, используйте звездочку (*
), чтобы соответствовать нулю или более символам в хосте. Например, хост*.google.com
соответствуетwww.google.com
,.google.com
иdeveloper.google.com
.Звездочка должна быть первым символом атрибута хоста. Например, хост
google.co.*
недействителен, поскольку подстановочный знак звездочки не является первым символом.Примечание . Сопоставление имен хостов в платформе Android чувствительно к регистру, в отличие от формального RFC. Поэтому всегда указывайте имена хостов строчными буквами.
-
android:port
- Порт — часть органа URI. Этот атрибут имеет смысл только в том случае, если для фильтра также указаны атрибуты
scheme
иhost
. -
android:path
android:pathPrefix
android:pathSuffix
android:pathPattern
android:pathAdvancedPattern
- Часть пути URI, которая должна начинаться с
/
. Атрибутpath
указывает полный путь, который сопоставляется с полным путем в объектеIntent
. АтрибутpathPrefix
указывает частичный путь, который сопоставляется только с начальной частью пути в объектеIntent
.Атрибут
pathSuffix
точно соответствует конечной части пути в объектеIntent
, и этот атрибут не обязательно должен начинаться с символа/
. АтрибутpathPattern
указывает полный путь, который соответствует полному пути в объектеIntent
, но может содержать следующие подстановочные знаки:- Звездочка (
*
) соответствует последовательности нулей многим вхождениям непосредственно предшествующего символа. - Точка, за которой следует звездочка (
.*
), соответствует любой последовательности от нуля до многих символов.
Атрибут
pathAdvancedPattern
указывает полный путь, который сопоставляется с полным путем объектаIntent
и поддерживает следующие шаблоны, подобные регулярным выражениям:- Точка (
.
) соответствует любому символу. - Набор (
[...]
) соответствует диапазонам символов. Например,[0-5]
соответствует одной цифре от 0 до 5, но не от 6 до 9.[a-zA-Z]
соответствует любой букве, независимо от регистра. Наборы также поддерживают модификатор «not»^
. - Модификатор звездочки (
*
) соответствует предыдущему шаблону ноль или более раз. - Модификатор плюс (
+
) соответствует предыдущему шаблону один или несколько раз. - Модификатор диапазона (
{...}
) указывает, сколько раз может соответствовать шаблон.
pathAdvancedPattern
— это реализация оценки, в которой сопоставление с шаблоном выполняется в реальном времени без поддержки обратного отслеживания.Поскольку
\
используется как escape-символ при чтении строки из XML, перед ее анализом как шаблона вам необходимо выполнить двойной escape. Например, литерал*
записывается как\\*
, а литерал\
записывается как\\\
. Это похоже на то, что вы пишете при создании строки в коде Java.Дополнительные сведения об этих пяти типах шаблонов см. в описаниях
PATTERN_LITERAL
,PATTERN_PREFIX
,PATTERN_SIMPLE_GLOB
,PATTERN_SUFFIX
иPATTERN_ADVANCED_GLOB
в классеPatternMatcher
.Эти атрибуты имеют смысл только в том случае, если для фильтра также указаны атрибуты
scheme
иhost
.pathSuffix
иpathAdvancedPattern
были представлены на уровне API 31. - Звездочка (
-
android:mimeType
- Тип мультимедиа MIME, например
image/jpeg
илиaudio/mpeg4-generic
. Подтипом может быть подстановочный знак звездочки (*
), указывающий на совпадение любого подтипа.Обычно фильтр намерений объявляет элемент
<data>
, который включает только атрибутandroid:mimeType
.Примечание . Сопоставление типов MIME в платформе Android учитывает регистр, в отличие от формальных типов MIME RFC. Поэтому всегда указывайте типы MIME, используя строчные буквы.
-
- представлено в:
- API уровня 1
- см. также:
-
<action>
<category>
- синтаксис:
<data android:scheme="string" android:host="string" android:port="string" android:path="string" android:pathPattern="string" android:pathPrefix="string" android:pathSuffix="string" android:pathAdvancedPattern="string" android:mimeType="string" />
- содержится в:
-
<intent-filter>
- описание:
- Добавляет спецификацию данных в фильтр намерений. Спецификация представляет собой тип данных, использующий атрибут
mimeType
, URI или и тип данных, и URI. URI задается отдельными атрибутами для каждой его части:<scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>|<pathAdvancedPattern>|<pathSuffix>]
Эти атрибуты, определяющие формат URI, являются необязательными, но также взаимозависимыми:
- Если для фильтра намерений не указана
scheme
, все остальные атрибуты URI игнорируются. - Если для фильтра не указан
host
, атрибутport
и все атрибуты пути игнорируются.
Все элементы
<data>
, содержащиеся в одном элементе<intent-filter>
вносят свой вклад в один и тот же фильтр. Так, например, следующая спецификация фильтра:<intent-filter . . . > <data android:scheme="something" android:host="project.example.com" /> ... </intent-filter>
эквивалентно этому:
<intent-filter . . . > <data android:scheme="something" /> <data android:host="project.example.com" /> ... </intent-filter>
Вы можете разместить любое количество элементов
<data>
внутри<intent-filter>
, чтобы предоставить ему несколько вариантов данных. Ни один из его атрибутов не имеет значений по умолчанию.Информацию о том, как работают фильтры намерений, включая правила сопоставления объектов намерений с фильтрами, см. в разделах «Намерения» и «Фильтры намерений» , а также в разделе «Фильтры намерений» в обзоре файла манифеста.
- Если для фильтра намерений не указана
- атрибуты:
-
android:scheme
- Часть схемы URI. Это минимальный необходимый атрибут для указания URI. Для фильтра должен быть установлен хотя бы один атрибут
scheme
, иначе ни один из других атрибутов URI не будет иметь смысла.Схема указывается без завершающего двоеточия, например
http
, а неhttp:
.Если фильтр имеет набор типов данных (с использованием атрибута
mimeType
), но не имеет схемы, предполагаются схемыcontent:
иfile:
Примечание . Сопоставление схем в платформе Android чувствительно к регистру, в отличие от RFC. Поэтому всегда указывайте схемы строчными буквами.
-
android:host
- Хостовая часть органа URI. Этот атрибут не имеет смысла, если для фильтра также не указан атрибут
scheme
. Чтобы сопоставить несколько поддоменов, используйте звездочку (*
), чтобы соответствовать нулю или более символам в хосте. Например, хост*.google.com
соответствуетwww.google.com
,.google.com
иdeveloper.google.com
.Звездочка должна быть первым символом атрибута хоста. Например, хост
google.co.*
недействителен, поскольку подстановочный знак звездочки не является первым символом.Примечание . Сопоставление имен хостов в платформе Android чувствительно к регистру, в отличие от формального RFC. Поэтому всегда указывайте имена хостов строчными буквами.
-
android:port
- Порт — часть органа URI. Этот атрибут имеет смысл только в том случае, если для фильтра также указаны атрибуты
scheme
иhost
. -
android:path
android:pathPrefix
android:pathSuffix
android:pathPattern
android:pathAdvancedPattern
- Часть пути URI, которая должна начинаться с
/
. Атрибутpath
указывает полный путь, который сопоставляется с полным путем в объектеIntent
. АтрибутpathPrefix
указывает частичный путь, который сопоставляется только с начальной частью пути в объектеIntent
.Атрибут
pathSuffix
точно соответствует конечной части пути в объектеIntent
, и этот атрибут не обязательно должен начинаться с символа/
. АтрибутpathPattern
указывает полный путь, который соответствует полному пути в объектеIntent
, но может содержать следующие подстановочные знаки:- Звездочка (
*
) соответствует последовательности нулей многим вхождениям непосредственно предшествующего символа. - Точка, за которой следует звездочка (
.*
), соответствует любой последовательности от нуля до многих символов.
Атрибут
pathAdvancedPattern
указывает полный путь, который сопоставляется с полным путем объектаIntent
и поддерживает следующие шаблоны, подобные регулярным выражениям:- Точка (
.
) соответствует любому символу. - Набор (
[...]
) соответствует диапазонам символов. Например,[0-5]
соответствует одной цифре от 0 до 5, но не от 6 до 9.[a-zA-Z]
соответствует любой букве, независимо от регистра. Наборы также поддерживают модификатор «not»^
. - Модификатор звездочки (
*
) соответствует предыдущему шаблону ноль или более раз. - Модификатор плюс (
+
) соответствует предыдущему шаблону один или несколько раз. - Модификатор диапазона (
{...}
) указывает, сколько раз может соответствовать шаблон.
pathAdvancedPattern
— это реализация оценки, в которой сопоставление с шаблоном выполняется в реальном времени без поддержки обратного отслеживания.Поскольку
\
используется как escape-символ при чтении строки из XML, перед ее анализом как шаблона вам необходимо выполнить двойной escape. Например, литерал*
записывается как\\*
, а литерал\
записывается как\\\
. Это похоже на то, что вы пишете при создании строки в коде Java.Дополнительные сведения об этих пяти типах шаблонов см. в описаниях
PATTERN_LITERAL
,PATTERN_PREFIX
,PATTERN_SIMPLE_GLOB
,PATTERN_SUFFIX
иPATTERN_ADVANCED_GLOB
в классеPatternMatcher
.Эти атрибуты имеют смысл только в том случае, если для фильтра также указаны атрибуты
scheme
иhost
.pathSuffix
иpathAdvancedPattern
были представлены на уровне API 31. - Звездочка (
-
android:mimeType
- Тип мультимедиа MIME, например
image/jpeg
илиaudio/mpeg4-generic
. Подтипом может быть подстановочный знак звездочки (*
), указывающий на совпадение любого подтипа.Обычно фильтр намерений объявляет элемент
<data>
, который включает только атрибутandroid:mimeType
.Примечание . Сопоставление типов MIME в платформе Android учитывает регистр, в отличие от формальных типов MIME RFC. Поэтому всегда указывайте типы MIME, используя строчные буквы.
-
- представлено в:
- API уровня 1
- см. также:
-
<action>
<category>