- 문법:
- 데이터 태그가
의 바로 아래 하위 요소인 경우:
<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 형식을 지정하는 이러한 속성은 선택사항이지만 상호 의존적입니다.
동일한
<intent-filter>요소에 포함된 모든<data>요소는 동일한 필터에 기여합니다. 다음 필터 사양을 예로 들겠습니다.<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:스키마로 가정됩니다.참고: Android 프레임워크의 스키마 일치는 RFC와 달리 대소문자를 구분합니다. 따라서 항상 소문자를 사용하여 스키마를 지정합니다.
android:host- URI 권한의 호스트 부분입니다. 이 속성은 필터에
scheme속성도 지정되어 있지 않으면 의미가 없습니다. 여러 하위 도메인을 일치시키려면 별표(*)를 사용하여 호스트에서 문자 0개 이상을 찾습니다. 예를 들어 호스트*.google.com은www.google.com,.google.com,developer.google.com과 일치합니다.별표는 호스트 속성의 첫 문자여야 합니다. 예를 들어 호스트
google.co.*는 유효하지 않습니다. 별표 와일드 카드가 첫 문자가 아니기 때문입니다.참고: Android 프레임워크의 호스트 이름 일치는 정식 RFC와 달리 대소문자를 구분합니다. 따라서 항상 소문자를 사용하여 호스트 이름을 지정합니다.
android:port- URI 권한의 포트 부분입니다. 이 속성은 필터에
scheme속성과host속성도 지정되어 있어야 의미가 있습니다. android:pathandroid:pathPrefixandroid:pathSuffixandroid:pathPatternandroid:pathAdvancedPattern- URI의 경로 부분으로,
/로 시작해야 합니다.path속성은Intent객체의 전체 경로와 일치하는 전체 경로를 지정합니다.pathPrefix속성은Intent객체의 경로 중 처음 부분만 일치하는 일부 경로를 지정합니다.pathSuffix속성은Intent객체의 경로 끝 부분과 정확하게 일치하며 이 속성은/문자로 시작할 필요가 없습니다.pathPattern속성은Intent객체의 전체 경로와 일치하는 전체 경로를 지정하지만 다음 와일드 카드를 포함할 수 있습니다.-
마침표 (
.)는 모든 단일 문자와 일치합니다. 리터럴 마침표와 일치시키려면 XML에서 이스케이프 처리합니다.\\. -
별표 (
*) 수정자는 바로 앞에 있는 문자가 0번 이상 나오는 일치 항목을 찾습니다. 예를 들어a*는 "a" 및 "aa"와 일치하지만 빈 문자열과는 일치하지 않습니다. -
마침표 다음에 별표 (
.*)를 사용하면 0자 이상 일치하는 항목을 찾습니다. 예를 들어.*는 빈 문자열과 일치하고b.*는 "b", "bc", "bcd"와 일치합니다.
pathPattern에 관한 중요한 고려사항:- 역추적 없음: Android의 패턴 일치자는 역추적 없이 단일 전달 패스로 문자열을 평가합니다. 와일드 카드가 나중에 패턴에 필요한 문자를 사용하면 일치에 실패합니다.
-
.*는 지연됨:.*와일드 카드는 지연됩니다. 패턴에서 다음 리터럴 문자가 처음 나타날 때까지 문자를 사용합니다.-
"abc.*xyz"는"abcpxqrxyz"와 일치하지 않습니다..*는 첫 번째"x"("px..."에서)에서 지연되어 중지됩니다. 나머지 문자열"qrxyz"는 예상되는"yz"와 일치하지 않습니다. -
경고:
.*는 중지할 정확한 문자 일치를 찾으므로"a.*.c"는"abbbc"와 일치하지 않습니다. 일치자는 두 번째.를 리터럴 마침표로 처리하고 문자열을 검색하여"."를 찾고 끝에 도달하면 실패합니다.
-
-
*는 탐욕적임: 별표가 뒤따르는 특정 문자 (예:a*)는 탐욕적입니다. 앞을 보지 않고 해당 문자가 연속으로 나타나는 모든 항목을 사용합니다.-
"a*a"는"aaa"와 같은 문자열과 일치하지 않습니다.a*부분은 세 개의"a"를 모두 탐욕적으로 사용합니다. 그러면 패턴 은 최종"a"를 예상하지만 문자열이 이미 소진되어 일치에 실패합니다.
-
- 권장사항:
-
*바로 뒤에 있는 문자가 앞에 있는 문자와 같은 패턴은 피하세요 (예:a*a). -
.*바로 뒤에 와일드 카드를 배치하지 마세요 (예:.*.또는.*.*). -
접두사를 일치시키려면
pathPattern을.*로 끝내는 대신android:pathPrefix을 사용하는 것이 더 안전하고 효율적입니다.
-
pathAdvancedPattern속성은Intent객체의 전체 경로와 일치하는 전체 경로를 지정하며, 다음의 정규식과 유사한 패턴을 지원합니다.-
마침표(
.)는 모든 문자와 일치합니다. -
집합(
[...])은 문자 범위와 일치합니다. 예를 들어[0-5]는 0부터 5까지의 한 자릿수와 일치하지만 6에서 9까지와는 일치하지 않습니다.[a-zA-Z]는 대소문자와 관계없이 모든 문자와 일치합니다. 집합은 'not'^수정자도 지원합니다. -
별표(
*) 수정자는 앞의 패턴과 0번 이상 일치합니다. -
더하기(
+) 수정자는 앞의 패턴과 한 번 이상 일치합니다. -
범위(
{...}) 수정자는 패턴이 일치할 수 있는 횟수를 지정합니다.
pathAdvancedPattern매처는 역추적 지원 없이 실시간으로 패턴의 일치를 확인하는 평가 구현입니다.\는 XML에서 문자열을 읽을 때 이스케이프 문자로 사용되므로 패턴으로 파싱되기 전에 두 번 이스케이프 처리해야 합니다. 예를 들어 리터럴*는\\*로 작성되고 리터럴\는\\\\로 작성됩니다. 이는 Java 코드로 문자열을 구성할 때 작성하는 것과 같습니다.이러한 다섯 가지 유형의 패턴에 관한 자세한 내용은
PatternMatcher클래스의PATTERN_LITERAL,PATTERN_PREFIX,PATTERN_SIMPLE_GLOB,PATTERN_SUFFIX,PATTERN_ADVANCED_GLOB에 관한 설명을 참고하세요.이 속성은 필터에
scheme속성과host속성도 지정되어 있어야만 의미가 있습니다.pathSuffix및pathAdvancedPattern은 API 수준 31에서 도입되었습니다. -
마침표 (
android:fragmentandroid:fragmentPrefixandroid:fragmentSuffixandroid:fragmentPatternandroid:fragmentAdvancedPattern-
URI 프래그먼트의 일치자입니다.
#접두사를 포함하지 마세요. 각 속성에서 허용되는 의미 및 패턴은 위를 참고하세요.일반적으로 URI로 인코딩되는 문자와 일치시키려면 속성 값에 원시 (인코딩되지 않은) 형식을 포함합니다. 예를 들어
<data android:fragment="test!" />는#test!및#test%21와 일치합니다.API 수준 35에 도입되었습니다.
android:queryandroid:queryPrefixandroid:querySuffixandroid:queryPatternandroid:queryAdvancedPattern-
URI 쿼리 매개변수 (및 선택적으로 값)의 일치자입니다. 예를 들어
<data android:query="param=value" />를 사용하여?param=value로 끝나는 URI와 일치시킬 수 있습니다.?접두사를 포함하지 마세요. 각 속성에서 허용되는 의미 및 패턴은 위를 참고하세요.일반적으로 URI로 인코딩되는 문자와 일치시키려면 속성 값에 원시 (인코딩되지 않은) 형식을 포함합니다. 예를 들어,
<data android:query="test!" />는?test!및?test%21와 일치합니다.API 수준 35에 도입되었습니다.
android:mimeType- MIME 미디어 유형입니다(예:
image/jpeg또는audio/mpeg4-generic). 하위유형은 모든 하위유형 일치를 나타내는 별표 와일드 카드(*)일 수 있습니다.인텐트 필터는 일반적으로
android:mimeType속성만 포함된<data>요소를 선언합니다.참고: Android 프레임워크의 MIME 유형 일치는 정식 RFC MIME 유형과 달리 대소문자를 구분합니다. 따라서 항상 소문자를 사용하여 MIME 유형을 지정하세요.
- 도입 수준:
- API 수준 1
- 참고 항목:
<action><category>
<data>
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2026-04-21(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-04-21(UTC)"],[],[]]