앱에서 다른 앱 실행 시 값 전달하는 방법
앱에서 '어떤 앱' 을 호출 해야 될 때가 있다. 단순히 호출만이 아니라, 데이터를 전달하면서
호출할 때가 분명히 발생한다!
<호출하는 앱 코드>
Intent intent = new Intent(Intent.ACTION_VIEW); intent.addCategory(Intent.CATEGORY_DEFAULT); intent.addCategory(Intent.CATEGORY_BROWSABLE); intent.setData(Uri.parse("custom://main?url=http://www.daum.net")); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP); startActivity(intent);
<호출받는 앱 코드>
onCreate 나 onResume 등에서 Intent 를 받아오자.
if (Intent.ACTION_VIEW.equals(intent.getAction())) { Uri uri = intent.getData(); if (String.valueOf(uri).startsWith("custom")) { //TODO 원하는 작업 실행 String url = uri.getQueryParameter("url"); } }
<호출받는 앱 매니페스트>
매니페스트에서 스키마 선언이 중요하다.
custom://main 이런식으로 호출 하기 위해서는 scheme 과 host 정의가 필요하다.
'안드로이드 > TIP' 카테고리의 다른 글
HttpUrlConnection 세션 (0) | 2017.10.18 |
---|---|
단순히 특정앱만 호출하자! (0) | 2017.09.27 |
안드로이드 미러링 앱 (0) | 2017.09.18 |
Keystore 정보 숨기기 (0) | 2017.08.18 |
build.gradle lintOptions (0) | 2017.08.18 |