본문 바로가기

Android/기타

[Android] 다른 앱의 activity(액티비티)에서 결과 받아오기

반응형

다른 앱의 액티비티에서 결과를 받아오려면 다음의 과정이 필요하다.

A(호출하는 앱), B(호출되는 앱)이라고 하고 설명을 쓰려고 한다.

1. B에서는 일단 호출될 액티비티를 생성하는데 옵션을 다음과 같이 지정한다.

<activity
	android:name="B 액티비티 클래스"
	android:exported="true" />

2. A에서는 ActivityResultLauncher를 생성합니다. (onCreate에서)

resultLauncher =
	registerForActivityResult(
		ActivityResultContracts.StartActivityForResult()
	) {
		if (it.resultCode != Activity.RESULT_OK) {
        	// 실패 시 처리 로직
			return@registerForActivityResult
		}

		// 성공 시 처리 로직
}

3. A에서 호출하면 끝(주의 : ComponentName의 두 번째 파라미터는 무조건 패키지를 포함해야합니다. 예시 - com.test.testapp.ui.login.LoginActivity)

val intent = Intent()
// 필요하면 여기서 action, data 등을 추가해도 됩니다.
intent.component = ComponentName(
	"B의 패키지명",
	"해당 B의 클래스명(패키지 포함)"
)
resultLauncher.launch(intent)
반응형