Intent Filter 에 대해서.

 

Intent-Filter 는 Manifest.xml 파일에서 재정해주는 것으로 명시적 호출의 조건이 된다. Intent Filter에는 세가지 항목이 있고 특징은 다음과 같다.



우리가 작성한 어플리케이션도, 인터넷 페이지의 특정 형식의 주소와 상호 작용 할 수 있습니다. 혹시 알고 계셨나요?;;; 방법은 아주 단순합니다. 아래와 같은 인텐트 필터를 메니페스트 상에 추가하기만 하면 됩니다.


<activity android:name=".MyActivity">

<intent-filter> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:scheme="http" android:host="mysite.com" android:pathPrefix="/news/articles/"/> </intent-filter>

</activity>


 핵심은 두 가지. Intent Filter 의 카테고리로 android.intent.category.BROWSABLE 를 추가하고, 캡처하고자 하는 URL 의 형식을 data 요소의 속성 값으로 표현하는 것 입니다. URL 형식은 4가지 속성 값 -  scheme, host, pathPrefix, port 를 활용하여 표현할 수 있으며, 각각은 일반적으로 URL 를 구성하는 요소를 나타냅니다. 간단히 설명해 보면, URL 은 크게 아래의 5가지 요소로 구성됩니다.

scheme://host:port/path?query_string

 예를 들어, 'http://devilbbong.tistory.com/admin/entry/post/?id=71' 라는 URL은, 

scheme 는 'http' 이고, 

host 값은 'devilbbong.tistory.com' 이며, 

pathPrefix 는 '/admin/entry/post', 

그리고 'id=71' 라는 쿼리 문자열로 구성되어있습니다. 

'port' 값은 생략될 수 있는데, 이 경우 스키마에 정의된 프로토콜의 기본 포트가 할당 됩니다. 이 경우에는, 'http' 의 기본 포트인 '80' 입니다.





 

action

 

이 컴포넌트가 어떤 능력을 가지고 있는지를 표현하는 문자열이다.

 

이는 안드로이드에서 이미 많은 부분이 준비되어있다. 예를 들면, Intent.ACTION_CALL은 전화를 거는 액션이고, Intent.ACTION_DIAL 은 전화를 받는 액션이다. Intent.ACTION_VIEW는 무언가를 보는 능력이고, Intent.ACTION_SEARCH는 무언가를 찾는 액션이 된다. 이런 행동들을 표현하여 해당 컴포넌트가 어떠한 행동을 할지 지정하는 것이 이 Action 항목이다.

 

STANDARD ACTION의 종류

 

- ACTION_MAIN

Main 엔트리 포인트로 시작하는 액션

- ACTION_VIEW

사용자에게 화면을 보여주는 액션

- ACTION_ATTACH_DATA

어떠한 데이터를 다른 곳에 붙이는 액션

- ACTION_EDIT

데이터를 가져오는 액션

- ACTION_CHOOSER

액티비티를 고르는 화면을 떠오르게 하는 액션

- ACTION_GET_CONTENT

사용자에게 특정 데이터를 선택해서 가져오게 하는 액션

- ACTION_DIAL

전화를 거는 액션

- ACTION_CALL

전화를 거는 액션

- ACTION_SENDTO

다른 누군가에게 데이터를 전송하는 액션. 데이터를 받는 상대가 정확하지 않다

- ACTION_ANSWER

걸려온 전화를 다루는 액션

- ACTION_INSERT

지정된 컨테이너에 빈 아이템을 넣는 액션

- ACTION_DELETE

지정된 데이터를 컨테이너에서 삭제하는 액션

- ACTION_SYNC

데이터를 싱크하는 액션

- ACTION_PICK_ACTIVITY

주어진 인텐트에 지정된 액티비티를 가져오는 액션

- ACTION_SEARCH

검색을 수행하는 액션

- ACTION_WEB_SEARCH

웹에서 검색을 수행하는 액션

 

 

category


 

이 능력을 표한하기 위해서 필요한 특수한 상황들을 말한다. 예를 들면, Main 이면, 액티비티의 Main, LAUNCHER는 어플의 런쳐, BROWSERABLE은 브라우저에서 링크를 통해 어플을 실행시키는 경우가 있다.

 

사전 정의된 카테고리들


- CATEGORY_DEFAULT

디폴트 카테고리


- CATEGORY_BROWSABLE

브라우저에서 어플로 연결하는 경우


- CATEGORY_ALTERNATIVE

유저가 현재 보고있는 데이터에 다른 액션을 취할 경우


- CATEGORY_TAB

인텐트가 탭 액티비티의 탭으로 사용될 경우


- CATEGORY_SELECTED_ALTERNATIVE

유저가 보는 데이터에 선택적인 다른 액션을 취할 경우


- CATEGORY_PREFERENCE

액티비티가 프레프런스의 패널로 사용되는 경우


- CATEGORY_HOME

액티비티가 홈 액티비티로 사용되는 경우


- CATEGORY_TEST

테스트로 사용되는 경우


- CATEGORY_EMBED

부모 컨테이너 내부로 사용되는 경우

 

 

 

data



해당 컴포넌트를 사용할 때, 접근하는 URI를 뜻한다. URI에서는 입 출력 자료에 대한 조건을 정해놓을 수 있다. 

어떤 컴포넌트가 edit 액션을 가졌다고 가정한다. 그래서 문자열을 edit하러 들어갔는데 이미지 파일을 edit 하는 것일 수도 있다. 

그래서 받고 주는 데이터를 강제화하려면 여기에 정의하면 된다.

text/*, image/* 등과 같이 data에도 여러가지 부가 속성들을 정의할 수 있다.

 

- scheme

프로토콜을 의미한다. content://, sms:// 등

- host

URI에서 host 정보를 뜻한다.

- port

- path

- pathPattern

- pathPrefix

- mimeType

 



'Android' 카테고리의 다른 글

[WakeLock]  (0) 2018.03.27
[Android M] Permissions  (0) 2015.06.12
[Android M] API Overview  (0) 2015.06.11
[Android M] 4K Display Mode  (0) 2015.06.11
[Android M] Camera Features  (0) 2015.06.11
Posted by 소망아기
: