- синтаксис:
- Если тег данных является непосредственным дочерним элементом
<intent-filter>:<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" />
Если тег данных является непосредственным дочерним элементом<uri-relative-filter-group>:<data android:path="string" android:pathPattern="string" android:pathPrefix="string" android:pathSuffix="string" android:pathAdvancedPattern="string" android:fragment="string" android:fragmentPattern="string" android:fragmentPrefix="string" android:fragmentSuffix="string" android:fragmentAdvancedPattern="string" android:query="string" android:queryPattern="string" android:queryPrefix="string" android:querySuffix="string" android:queryAdvancedPattern="string" />
- содержится в:
-
<intent-filter>
<uri-relative-filter-group> - описание:
- Добавляет спецификацию данных в фильтр намерений. Спецификация представляет собой тип данных, использующий атрибут
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="project1.example.com" /> <data android:scheme="something-else" android:host="project2.example.com" android:path="/page1" /> ... </intent-filter>
эквивалентно этому:
<intent-filter . . . > <data android:scheme="something" /> <data android:scheme="something-else" /> <data android:host="project1.example.com" /> <data android:host="project2.example.com" /> <data android:path="/page1" /> ... </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:fragment
android:fragmentPrefix
android:fragmentSuffix
android:fragmentPattern
android:fragmentAdvancedPattern Сопоставитель фрагмента URI. Не включайте префикс
#. См. выше значение и шаблоны, разрешенные для каждого атрибута.Чтобы соответствовать символам, которые обычно кодируются URI, включите необработанную (некодированную) форму в значение атрибута. Например,
<data android:fragment="test!" />соответствует#test!и#test%21.Представлено на уровне API 35.
-
android:query
android:queryPrefix
android:querySuffix
android:queryPattern
android:queryAdvancedPattern Сопоставитель параметра запроса URI (и, при необходимости, значения). Например, вы можете сопоставить URI, оканчивающиеся на
?param=valueс<data android:query="param=value" />. Не включайте?префикс. См. выше значение и шаблоны, разрешенные для каждого атрибута.Чтобы соответствовать символам, которые обычно кодируются с помощью URI, включите необработанную (некодированную) форму в значение атрибута. Например,
<data android:query="test!" />соответствует?test!и?test%21.Представлено на уровне API 35.
-
android:mimeType - Тип мультимедиа MIME, например
image/jpegилиaudio/mpeg4-generic. Подтипом может быть подстановочный знак звездочки (*), обозначающий совпадение любого подтипа.Обычно фильтр намерений объявляет элемент
<data>, который включает только атрибутandroid:mimeType.Примечание . Сопоставление типов MIME в платформе Android учитывает регистр, в отличие от формальных типов MIME RFC. Поэтому всегда указывайте типы MIME, используя строчные буквы.
-
- представлено в:
- API-уровень 1
- см. также:
-
<action>
<category>
<данные>
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-29 UTC.
[null,null,["Последнее обновление: 2025-07-29 UTC."],[],[]]