반응형
다른 앱의 액티비티에서 결과를 받아오려면 다음의 과정이 필요하다.
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)
반응형
'Android > 기타' 카테고리의 다른 글
[Android] MediaProjection Intent 이슈 (0) | 2023.12.01 |
---|---|
[Android] 다른 앱 위에 그리기 권한을 받았음에도 권한이 없다고 나오는 이슈 (0) | 2023.02.09 |
[Android] Sms Retriever API 사용 시 주의사항 (0) | 2022.04.30 |
[Android] 백그라운드에서 클립보드 이용 시 주의사항 (0) | 2021.10.21 |
[Android] 카카오 SDK 설치 안 되는 이슈(Fox 버전 이후) (0) | 2021.09.15 |