티스토리 뷰

Mobile/Android

[Android]URL Scheme

out of coding 2014. 9. 26. 14:42

특정한 URL형식으로 호출을 하게 되면, 다른 앱을 구동할수 있다.

대표적인것으로는 market을 사용하는 구글플레이 kakaolink를 사용하는 카카오톡등이 있다.


저 형식을 사용하려면 자신이 원하는 이름으로 manifest file에 정의를 하여주면 된다.

방법은 자신이 저 호출되는 형식을 받아줄 Activity에 intent-filter를 추가하여 주면 된다.


쉽게 Action은 VIEW / Category는 DEFAULT, BROWSABLE / data의 scheme는 자신이 원하는 값으로 지정하여 주도록 한다. host는 원하면 넣도록 한다.


예시)

<intent-filter>

<action android:name="android.intent.action.VIEW"/>

<category android:name="android.intent.category.DEFAULT"/>

<category android:name="android.intent.category.BROWSABLE"/>

<data android:scheme="schemetest" host="test"/>

</intent-filter>


manifest file에 추가를 하여주었다면, 이제 다음으로 할것은 자바소스에서 넘어온 값들을 사용하도록 한다.

값은 Intent.getData()에서 Uri값으로 가져올수 있으며, 세부 메소드들은 다음과 같다.


- toString() : 전체 URL을 String으로 변환

- getHost() : Host부분

- getQuery() : Parameter부분

- getQueryParameterNames() : parameter key set

- getQueryParameter(key) : parameter key에 해당하는 부분의 value


테스트를 위한 임의의 호출 부분은 다음과 같다.


Uri uri = Uri.parse("schemetest://testdata?name=test&age=100&height=200");

startActivity(new Intent(Intent.ACTION_VIEW, uri));


만약 웹페이지의 URL을 저런형식으로 만들었다면, 자동으로 앱이 실행되면서, 데이터를 가져올수 있음.


소스파일 첨부함.


SchemeTest.zip


'Mobile > Android' 카테고리의 다른 글

[Android]LocalBroadcastManager  (0) 2014.11.05
[Android]String resource 사용  (0) 2014.10.29
[Android]setClipToPadding()  (0) 2014.09.26
[Android]Animation class applyTransformation  (0) 2014.09.25
[Android]NetworkOnMainThreadException  (0) 2014.09.25
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함