- 문법:
<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>]
URL 형식을 지정하는 이러한 속성은 선택사항이지만 상호 의존적입니다.
동일한
<intent-filter>
요소에 포함된 모든<data>
요소는 동일한 필터에 기여합니다. 다음 필터 사양을 예로 들겠습니다.<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>
<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:path
android:pathPrefix
android:pathSuffix
android:pathPattern
android:pathAdvancedPattern
- URI에서 슬래시(/)로 시작해야 하는 경로 부분입니다.
path
속성은 인텐트 객체의 전체 경로와 일치하는 전체 경로를 지정합니다.pathPrefix
속성은 인텐트 객체의 경로 중 처음 부분만 일치하는 일부 경로를 지정합니다.pathSuffix
속성은 인텐트 객체의 경로 끝부분과 정확하게 일치하며 이 속성은 '/' 문자로 시작할 필요가 없습니다.pathPattern
속성은 인텐트 객체의 전체 경로와 일치하는 완전한 경로를 지정하지만 다음 와일드 카드를 포함할 수 있습니다.- 별표('
*
')는 바로 앞에 나오는 문자가 0번 이상 발생하는 것을 나타냅니다. - 마침표 다음의 별표('
.*
')는 어떤 문자든 0번 이상 발생하는 것을 나타냅니다.
pathAdvancedPattern
속성은 인텐트 객체의 전체 경로와 일치하는 전체 경로를 지정하며, 다음의 정규식과 유사한 패턴을 지원합니다.-
마침표 ('
.
')는 모든 문자와 일치합니다. -
집합 ('
[...]
')은 문자 범위와 일치합니다. 예를 들어[0-5]
는 0부터 5까지의 한 자릿수와 일치하지만 6에서 9까지와는 일치하지 않습니다. 마찬가지로[a-zA-Z]
는 대소문자와 관계없이 모든 문자와 일치합니다. 집합은 아님^
수정자도 지원합니다. -
별표('
*
') 수정자는 선행 패턴과 0회 이상 일치합니다. -
더하기('
+
') 수정자는 선행 패턴과 1회 이상 일치합니다. -
범위('
{...}
') 수정자는 패턴이 일치할 수 있는 횟수를 지정하는 데 사용할 수 있습니다.
pathAdvancedPattern
매처는 역추적 지원 없이 실시간으로 패턴의 일치를 확인하는 간단한 평가 구현입니다.'
\
'는 XML에서 문자열을 읽을 때 패턴으로 파싱되기 전에 이스케이프 문자로 사용되므로 두 번 이스케이프 처리해야 합니다. 예를 들어 '*
'를 문자 그대로 사용하려면 '\\*
'로, '\
'를 문자 그대로 사용하려면 '\\\\
'로 써야 합니다. 이는 자바 코드로 문자열을 구성하는 경우 작성해야 하는 방식과 기본적으로 동일합니다.이 5가지 유형의 패턴에 관해 자세히 알아보려면
PatternMatcher
클래스의PATTERN_LITERAL
,PATTERN_PREFIX
,PATTERN_SIMPLE_GLOB
,PATTERN_SUFFIX
,PATTERN_ADVANCED_GLOB
관련 설명을 참고하세요.이 속성은 필터에
scheme
속성과host
속성도 지정되어 있어야만 의미가 있습니다.pathSuffix
속성은 API 수준 31에 도입되었습니다.pathAdvancedPattern
속성은 API 수준 26에 도입되었습니다. - 별표('
android:mimeType
- MIME 미디어 유형입니다(예:
image/jpeg
또는audio/mpeg4-generic
). 하위유형은 모든 하위유형 일치를 나타내는 별표 와일드 카드(*
)일 수 있습니다.인텐트 필터는 일반적으로
android:mimeType
속성만 포함된<data>
를 선언합니다.참고: Android 프레임워크의 MIME 유형 일치는 정식 RFC MIME 유형과 달리 대소문자를 구분합니다. 따라서 항상 소문자를 사용하여 MIME 유형을 지정해야 합니다.
- 도입 시기
- API 수준 1
- 참고 항목:
<action>
<category>
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2022-12-22(UTC)
[]
[]