본문 바로가기
개발/Unity

[Unity] 유니티에서 다른 앱 호출 방법

by 김뜬뜬 2025. 10. 27.

안녕하세요 주인장입니다.

 

오늘은 유니티에서 다른 앱을 호출하는 방법에 대해서 다뤄보겠습니다.

 

이 방법은 현재 앱에서 특정 외부 앱을 실행해야 하거나, 부모–자식 앱 구조를 가진 플랫폼에서 주로 활용됩니다. 즉, 메인 앱이 서브 앱을 호출하거나, 반대로 서브 앱이 상위 앱으로 돌아가야 하는 경우 등에 유용하게 사용할 수 있습니다.

 

유니티 앱 → 유니티 앱

  1. 호출 하려는 유니티 프로젝트의 Package Name을 확인합니다

Build Setting → Project Setting → Player → Other Settings → Identification 에서 확인할 수 있습니다

저는 테스트용으로 com.DefaultCompany.DangDangRunDemo 로 하였습니다

 

2. 앱 호출 함수를 작성합니다

public void OpenApp(string packageName)
{
    using (AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
    {
        AndroidJavaObject activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
        AndroidJavaObject packageManager = activity.Call<AndroidJavaObject>("getPackageManager");

        AndroidJavaObject intent = packageManager.Call<AndroidJavaObject>("getLaunchIntentForPackage", packageName);

        if (intent != null)
        {
            activity.Call("startActivity", intent);
        }
        else
        {
            Debug.LogWarning($"앱 실행 실패: {packageName} 패키지를 찾을 수 없습니다.");
        }
    }
}

 

매개변수인 packageName 에는 위에서 확인한 패키지 네임을 입력합니다.

 

3. OpenApp 함수를 실행하거나 실행할 UI에 연결합니다.

 

 

 

 유니티 앱 → 안드로이드 앱

  1. 안드로이드 앱을 호출하려면 호출 하려는 앱의 앱 스키마를 알아야 합니다.
    일반적으로 외부 안드로이드 앱 스키마는 ****://******** 양식 입니다 ex) blackjinapp://action

  2. Andriod Manifest 파일을 생성하고 intent filter를 설정해줍니다
    실행 시키고 싶은 Activity 에 scheme:host 형태의 URL 을 정의해 줍니다
    스키마가 blackjinapp://action 이라고 가정 했을때 아래와 같이 작성합니다.

    <activity android:name=".MainActivity">
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    <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:host="action" android:scheme="blackjinapp" />
    </intent-filter>
    </activity>
  3. 하단의 양식대로 스크립트를 작성하고 실행하거나 실행할 UI에 연결합니다
Application.OpenURL("blackjinapp://action");

 

 

 

오늘의 기록은 여기까지. 주인장은 이만 로그아웃 합니다, 모두 평안한 밤 보내세요!

 

참고자료: https://black-jin0427.tistory.com/99