- синтаксис:
- Если тег данных является непосредственным дочерним элементом
<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>
Внутри элемента
<intent-filter>можно разместить любое количество элементов<data>, чтобы задать несколько вариантов данных. Ни один из его атрибутов не имеет значений по умолчанию.Для получения информации о том, как работают фильтры намерений, включая правила сопоставления объектов намерений с фильтрами, см. разделы «Намерения» и «Фильтры намерений» , а также раздел «Фильтры намерений» в обзоре файла манифеста.
- Если для фильтра намерений не указана
- атрибуты:
-
android:scheme - Часть URI, отвечающая за схему. Это минимальный необходимый атрибут для указания URI. Для фильтра должен быть задан хотя бы один атрибут
scheme, иначе ни один из других атрибутов URI не будет иметь смысла.Схема указывается без двоеточия в конце, например,
httpвместоhttp:.Если для фильтра задан тип данных (с помощью атрибута
mimeType), но не указана схема, предполагаются схемыcontent:иfile::.Примечание : В отличие от RFC, сопоставление схем в фреймворке Android чувствительно к регистру. Поэтому схемы всегда следует указывать строчными буквами.
-
android:host - Часть имени хоста в URI-адресе. Этот атрибут не имеет смысла, если для фильтра не указан атрибут
scheme. Для сопоставления нескольких поддоменов используйте звездочку (*) для сопоставления нуля или более символов в имени хоста. Например, хост*.google.comсоответствуетwww.google.com,.google.comиdeveloper.google.com.Звездочка должна быть первым символом атрибута host. Например, host
google.co.*недопустим, поскольку символ подстановки звездочки не является первым символом.Примечание : В отличие от официального RFC, сопоставление имен хостов в среде Android чувствительно к регистру. Поэтому имена хостов всегда следует указывать строчными буквами.
-
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"^. - Модификатор в виде звездочки (
*) совпадает с предыдущим шаблоном ноль или более раз. - Модификатор плюс (
+) соответствует предыдущему образцу один или несколько раз. - Модификатор диапазона (
{...}) указывает количество раз, которое может соответствовать шаблон.
pathAdvancedPatternmatcher представляет собой реализацию с оценкой результатов, в которой сопоставление с шаблоном выполняется в реальном времени без поддержки возврата к исходному шаблону.Поскольку символ
\используется в качестве экранирующего символа при чтении строки из XML, перед тем как он будет интерпретирован как шаблон, необходимо выполнить двойное экранирование. Например, литерал*записывается как\\*, а литерал\— как\\\\. Это похоже на то, как вы пишете при построении строки в коде 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 RFC, сопоставление MIME-типов в Android-фреймворке чувствительно к регистру. Поэтому всегда указывайте MIME-типы строчными буквами.
-
- введено в:
- Уровень API 1
- См. также:
-
<action>
<category>
<данные>
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2026-02-23 UTC.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2026-02-23 UTC."],[],[]]