자기 개발과 IT 프로그래밍을 위한 여행

물처럼 흐르는 시간, 그 속에서의 여행

안드로이드 기반 앱 개발부/코틀린 코드 개발청

코틀린 다른 앱 실행 코드

창조의 새싹 2024. 2. 13. 12:14

안드로이드 다른 앱 실행

Android11(API30) 발표 이후, A앱에서 B앱 등의 다른 앱 실행 시 패키지 명 명시 필요.

1.  androidManifest  -  queries 태그 추가.

<manifest ...>
	...
    <queries>
    	<package android:name="대상 앱 패키지명" />
    </queries>
    ...
    <application ...>
    	...
    </application>
</manifest>

 

2. 기능 코드 추가

binding.btn.setOnClickListener {

    val packageName = "대상 앱 패키지명"
    val intent = packageManager.getLaunchIntentForPackage(packageName)

    if (intent != null) {
        // 앱이 설치되어 있으면 실행
        startActivity(intent)
    } else {
        // 앱이 설치되어 있지 않으면 특정 링크로 이동
        
        // 자체 링크 사용시
        val appMarketIntent = Intent(
            Intent.ACTION_VIEW,
            Uri.parse("자체 설치 링크 url")
        )
        startActivity(appMarketIntent)
        
        //구글 플레이스토어 앱 링크 사용시
        /*
        	val link = "https://play.google.com/store/apps/details?id=" + packageNmae
            	intent = Intent(Intent.ACTION_VIEW).apply{
            	data = Uri.parse(link)
            }
            context.startActivity(intent)
        */
    }
}

 

3. xml 버튼 생성

 

checking.
 1) 뷰 바인딩 기법 사용 버튼 id 이벤트 부여
 2) 앱 미설치 시 링크 통해 설치 이동
 3) 앱 설치시 해당 앱 패키지 실행