본문 바로가기
프로그래밍/Android

인텐트 필터(Intent Filter)

by Mr-후 2018. 10. 24.
반응형

AndroidManifest.xml 에 컴포넌트 하위 태그로 <intent-filter>태그가 등록되고 형태는 다음과 같다. 



p><intent-filter>부분에 <action>, <category>, <data>가 등록되어 있는데 이 3가지가 모두 등록될 필요는 없지만, 내가 운영하고 있는 앱에서는 다 등록이 되어 있다. 

각 항목에 대해 개인적으로 궁금하던 차다. 몇번 안드로이드 책을 읽어보는 도전을 했지만 이번처럼 머리속에 쏙쏙 잘 들어오긴 처음이다. 역시 발등에 불이 떨어지면 긴박해지긴 하나보다. 

먹고 살자니 어쩔 수 없이 흡수를 시작하는건가? 


  • action : 컴포넌트가 어떤 능력을 갖추고 있는지에 대한 문자열. 개발자가 임의로 지정하는 단어도 가능하며, 라이브러리에서 지정한 문자열을 이용해 된다. 예를 들어,
    android.intent.action.VIEW 라고 선언되어 있다면 컴포넌트가 데이터를 보여주는 능력을 갖추고 있다고 선언한 것이며,
    android.intent.action.EDIT라고 선언되어 있다면 이 컴포넌트가 데이터를 편집하는 능력을 갖추고 있다는 의미로 선언된 것이다. 
    나의 경우 VIEW라고 선언되어있다. EDIT는 본적이 없다. 
  • category: 컴포넌트에 대한 추가 정보로 어느 범주의 컴포넌트인지를 표현하는데 사용되고 개발자가 임의로 지정하는 단어도 가능하지만, 거의 대부분 라이브러리 내에서 준비된 단어를 사용한다. 예를 들어, 
    android.intent.category.LAUNCHER 라고 선언되어 있으면 컴포넌트가 런처에 의해 처리될 범주에 포함하겠다는 의미이고, 
    android.intent.category.BROWSABLE이라고 선언되어 있으면 컴포넌트가 브라우저에 의해 처리될 범주에 포함하겠다는 의미이다. (잘 이해안간다. ㅋ) 
  • data : data는 컴포넌트를 실행하기 위해 필요한 데이터에 대한 상세 정보를 명시하기 위해 사용하는데 data는 URL형식으로 표현되어 action이나 category처럼 문자열 하나로 선언하지 않고 android:scheme, android:host, android:port, android:mimeType등으로 선언하게 된다. 
    이 외에 android:host, android:port, android:path가 함께 선언될 수 있다. 
출처 : 깡샘의 안드로이드 프로그래밍 중에서 


반응형