안녕하세요 푸민입니다.
안드로이드에서 스키마를 잘 활용하면 굉장히 이점이 많습니다.
스키마는 외부에서 자신의 앱에 접근할 수 있도록 하나의 통로를 열어주는 역활을 하는데요.
한번 알아볼까요?
1. 먼저 어떤 스키마를 만들지 정합니다.
안드로이드에서 스키마란 우리가 일반적으로 인터넷에 접속할 때 http://www.google.com/ 와 같은 주소 체계를 사용합니다. 여기서 http:// 이 부분이 안드로이드에서 만들수 있는 스키마입니다.
혹시 페이스북이나 카카오톡을 연동해 보신분들은 아실수 있는데요.
fb://
kakaotalk://
위와 같은 스키마가 커스텀 스키마입니다.
저희는 테스트로 myapp:// 으로 스키마를 한번 만들어보겠습니다.
2. 안드로이드 메니페시트에 외부에서 호출할 액티비티의 속성으로 인텐트 필터를 추가합니다.
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.BROWSABLE"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="myapp"/>
</intent-filter>
해당 스키마 부분에 myapp을 정의해줍니다.
3. 외부에서 스키마를 호출합니다.
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.addCategory(Intent.CATEGORY_BROWSABLE);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.setData(Uri.parse("myapp://"));
startActivity(intent);
요렇게 우리가 설정해준대로 인텐트를 이용해서 요청하면 해당 액티비티를 불러올수 있습니다.
모바일 웹에서도 해당 액티비티를 불러올 수 있는데요.
안드로이드 폰내에서 <a> 태그를 사용하여 해당 스키마를 호출하면 해당 액티비티를 찾아서 불러올 수 있습니다.
제가 하다가 막혀서 사용했던 스택오버플로우 답변 참조하세요~
http://stackoverflow.com/questions/28816137/android-custom-scheme-not-working
'Development > Android' 카테고리의 다른 글
[안드로이드] 동영상 시간별 이미지 추출 (0) | 2015.11.16 |
---|---|
[안드로이드] 진동, 소리, 무음, 디바이스 상태 정보 받아오기! (0) | 2015.11.15 |
[안드로이드] ViewPager 어렵지 않아요! 간단적용법! (2) | 2015.11.13 |
[안드로이드] ADB 명령어 모음 (0) | 2015.11.12 |
[안드로이드][이미지처리] 이미지 블러처리 (0) | 2015.11.11 |
댓글