[Android] 안드로이드 설치되어 있는 다른 앱(외부 앱) 실행
다음은 앱이 설치되어 있는지 여부를 패키지 명으로 검사하는 메서드다.
|
public boolean checkPackageExisting(String packageName) { boolean bExist = false; PackageManager pkgMgr = getPackageManager(); if (mApps != null && mApps.size() > 0) { return bExist; |
설치되어 있는 다른 앱(외부 앱)을 실행하는 코드는 다음과 같다.
|
String packageName = “com.bb.testapp”; |
이 때, 외부 앱을 실행하기 위한 Intent 를 사용하는 방법이 여러가지 있다.
|
(1) LAUNCHER 카테고리에 해당하는 액션을 실행하려면 다음과 같이 쓰면 된다. String packageName = “com.bb.testapp”; Intent intent = getPackageManager().getLaunchIntentForPackage(packageName); 대상이 되는 어플리케이션의 AndroidManifest.xml 에는 다음과 같이 정의되어 있어야 한다. <intent-filter> (2) 특정 패키지의 특정 액티비티를 실행하려면 다음과 같이 쓰면 된다. Intent intent = new Intent(); 대상이 되는 어플리케이션의 com.bb.testapp 패키지 하위에 MainActivity.java 파일이 있어야 한다. (3) DEFAULT 카테고리에 해당하는 액션을 실행하려면 다음과 같이 쓰면 된다. Intent intent = new Intent(“com.bb.testapp.action.MAIN”); 대상이 되는 어플리케이션의 AndroidManifest.xml 에는 다음과 같이 정의되어 있어야 한다. <intent-filter> |
만약 외부 앱을 실행하면서 동시에 데이터를 전달하고 싶다면 intent.putExtra 메서드를 사용한다.
|
String packageName = “com.bb.testapp”; // 외부 앱에 데이터를 전달 |
한편, 호출당하는 외부 앱 입장에서 값을 전달받기 위해서는 intent.getStringExtra 메서드를 사용하면 된다.
호출당하는 앱의 메인 액티비티 onCreate 메서드 내용을 아래와 같이 코딩한다.
|
@Override Intent intent = getIntent(); System.out.println(“extraKey1 : “ + extraKey1); // 중략 } |
참고사이트 : https://www.fun25.co.kr/blog/android-execute-3rdparty-app/?category=003